Software Architecture in Practice
Read this section to learn about the main elements, patterns, quality attributes, and principles of software architecture, including encapsulation, polymorphism, and dependencies. Pay attention to design patterns and their importance in software design.
6. Architectures Classifications
Layered Architecture
Components are organized into horizontal layers
An example of a layered architecture is the MVC architecture
Layered Architecture Diagram Example
Model-View-Controller (MVC)
A way to build applications with a user interface
- Model - represents how data is persisted
- View - the presentational layer that the end user sees
- Controller - the mediator between the model and the view
Plugin Architecture
Components are organized as plugins where you can use different components in an extensible and reusable way
Plugin Architecture Diagram Example
Pipes and Filters Architecture
The main components of this architecture are pipes and filters, particularly with processing data
- Pipe - data flows from point to point
- Filters - programs or processes that mutates the data feeding into other pipes or sinks
- Sinks - where the data ultimately will be stored after a series of transformations
Pipes and Filters Architecture Diagram Example