Logo

dev-resources.site

for different kinds of informations.

Types Of Software Architecture

Published at
6/27/2024
Categories
designpatterns
softwaredevelopment
software
patterns
Author
oussama_bel
Author
11 person written this
oussama_bel
open
Types Of Software Architecture

Image description

MVC Model View Controller:

Untitled

The Model-View-Controller (MVC) design pattern is an architectural pattern used in software engineering to separate concerns within an application, promoting organized and modular development. This pattern divides an application into three interconnected components:

  • Model: Represents the application's data and business logic.

  • View: Displays the data to the user.

  • Controller: Handles user input and interactions, updating the model and view accordingly.

Model-View-Presenter:

Untitled

The Model-View-Presenter (MVP) design pattern is another architectural pattern used in software engineering, similar to MVC but with some key differences. It also promotes separation of concerns, making the codebase more manageable and scalable. The main components in MVP are:

  • Model: Represents the application's data and business logic.

  • View: Displays the data to the user and handles user interaction.

  • Presenter: Acts as an intermediary between the model and the view, handling all the logic and communication between them.

Model-View-View-Model :

Untitled

The Model-View-View-Model (MVVM) design pattern is a structural design pattern specifically designed for UI development, primarily used in applications with a rich user interface such as WPF (Windows Presentation Foundation), Silverlight, and increasingly in web and mobile app development frameworks like Angular, React, and Xamarin. MVVM separates the development of the graphical user interface from the development of the business logic or back-end logic (the data model).

  • Model: Represents the application's data and business logic.

  • View: Represents the UI components and is responsible for rendering the data to the user.

  • View-Model: Acts as an intermediary between the View and the Model, handling the presentation logic and exposing data to the View.

Model-View-ViewModel-Coordinator :

Untitled

The Model-View-ViewModel-Coordinator (MVVM-C) design pattern is an extension of the MVVM pattern, often used in iOS development to further separate concerns and improve the maintainability of code. The addition of the Coordinator component helps manage navigation and the flow of screens in the application, making the MVVM-C pattern particularly useful for complex applications with multiple view transitions.

  • Model: Represents the application's data and business logic.

  • View: Represents the UI components and is responsible for rendering the data to the user.

  • ViewModel: Acts as an intermediary between the View and the Model, handling the presentation logic and exposing data to the View.

  • Coordinator: Manages the navigation flow and coordination between different parts of the application.

View-Interactor-Presenter-Entity-Router:

Untitled

VIPER (View, Interactor, Presenter, Entity, Router) is a design pattern commonly used in iOS development to create a modular and testable architecture. It aims to separate concerns more explicitly than other patterns like MVC, MVP, or MVVM, promoting single responsibility for each component and facilitating better maintainability and scalability of the code.

  • View: Responsible for the user interface and user interaction.

  • Interactor: Contains the business logic and handles the data.

  • Presenter: Acts as a mediator between the View and the Interactor, handling the presentation logic.

  • Entity: Represents the data models used by the Interactor.

  • Router: Manages navigation and routing between different modules or screens.

  • Entity: Represents the data models used by the Interactor.

  • Router: Manages navigation and routing between different modules or screens.

patterns Article's
30 articles in total
Favicon
Streamlining Data Flow in Angular: The Power of the Adapter Pattern ๐Ÿ”„
Favicon
CQRS โ€” Command Query Responsibility Segregation โ€” A Java, Spring, SpringBoot, and Axon Example
Favicon
Mastering the Container-Presenter Pattern in Angular: A Deep Dive
Favicon
Repository Design Pattern, Promoting Packages via ADS, and New Arabic Article โœจ
Favicon
Flexibilidad y Escalabilidad: Usando Strategy y Factory Patterns
Favicon
Understanding Domain Events in TypeScript: Making Events Work for You
Favicon
Padrรตes de Projeto em React [HOCs, Render Props, Hooks]
Favicon
Mobile Development Platforms and software architecture pattern in mobile development
Favicon
Finite-state machine example in JavaScript
Favicon
OOP Simplified: Quick Factory Methods with Encapsulation, Abstraction, and Polymorphism in TypeScript
Favicon
Finite-state machine example in JavaScript
Favicon
How to avoid N + 1 and keep your Ruby on Rails controller clean
Favicon
Types Of Software Architecture
Favicon
Testando das trincheiras: Usando um "clock" fixo
Favicon
ยฟPOR QUร‰ no estรกs usando estos providers de Angular?
Favicon
Common and Useful Deployment Patterns
Favicon
Reusing state management: HOC vs Hook
Favicon
Understanding JavaScript Creational Patterns for Object Creation
Favicon
Understanding Design First: Principles, Patterns, and Best Practices Explained
Favicon
The Architecture Might Not Be the Problem
Favicon
Padrรฃo JumpTable com Javascript
Favicon
Explorando os Fundamentos dos Padrรตes de Projeto: Conceitos Bรกsicos
Favicon
Six Factors That Raise The Risk Of Bugs In A Codebase
Favicon
Microservices: Avoiding the Pitfalls, Embracing the Potential - A Guide to Anti-Patterns
Favicon
Android Presentation Patterns: MVI
Favicon
Entendendo o Pub/Sub com Javascript
Favicon
The Consumer Conundrum: Navigating Change in Microservices Without Gridlock
Favicon
๐—ช๐—ต๐—ฎ๐˜ ๐—ฎ๐—ฟ๐—ฒ ๐˜๐—ต๐—ฒ ๐—ฅ๐—ฒ๐—ด๐—˜๐˜… ๐—ฃ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐—ป๐˜€?
Favicon
Using a Trait in Builder CLIs
Favicon
CLI Contexts

Featured ones: