What are the benefits of an N-layered architecture? How does that make an application better?
相关问题
- Shared common definitions across C/C++ (unmanaged)
- Long-lived RESTful interactions
- Flutter BLoC: Is using nested StreamBuilders a bad
- How to prevent or intercept a call to Directory.De
- structure a large project software with MVC [close
相关文章
- Why doesn't there exists a subi opcode for MIP
- DDD Architecture - Where To Put Common Methods/Hel
- Proper scenekit architecture for multi level/scree
- MySQLi Error Handling?
- GET requests in TOR network without installing TOR
- TIme-based Notification Architecture
- Architecture of Azure Mobile Services Application
- designing application classes
From here:
Maintenance of and enhancements to the solution are easier due to the low coupling between layers, high cohesion between the layers, and the ability to switch out varying implementations of the layer interfaces.
Other solutions should be able to reuse functionality exposed by the various layers, especially if the layer interfaces are designed with reuse in mind.
Distributed development is easier if the work can be distributed at layer boundaries.
Distributing the layers over multiple physical tiers can improve scalability, fault-tolerance, and performance. For more information, see the Tiered Distribution pattern.
Testability benefits from having well-defined layer interfaces as well as the ability to switch out various implementations of the layer interfaces.
Summary
Benifits are
Firs of all, layered architecture is a type of "Modular Design". Hence, in order to appreciate the benefits of layered architecture, one needs to know what modular design is. Secondly, it is a special type of modular design, specifically organized to manage dependencies in order to minimize tight coupling, thus achieving the objectives of modular design - autonomous modles/components. When we have autonomous/independent modules, then they can be reused, extended, tested, and so on, compared to the case where the architecture/design is not modular.
I have an article about layered architecture, where I discuss these things in more detail. It might be helpful.
Layered Architecture Explained