Object Oriented Software Engineering View all facts Glossary Help |
| subject > pattern > software architecture > Model-View-Controller |
| Model-View-Controller (MVC) | ||||
| subject | fact | |||
| Model-View-Controller | has definition A architectural pattern used to separate the functional layer of the system (the model) from two aspects of the user interface, the view and the controller | ![]() |
| facilitates divide-and-conquer because the three components can be independently designed | ![]() | |
| increases cohesion because the components have stronger layer cohesion than if the view and controller were together in a single UI layer | ![]() | |
| increases flexibility because it is usually quite easy to change the UI by changing the view, the controller, or both | ![]() | |
| increases layer cohesion of the user interface layer | ![]() | |
| increases reuse because the view and controller normally make extensive use of reusable components for various kinds of UI controls | ![]() | |
| is a subtopic of 9.5 - Architectural Patterns | ![]() | |
| is abbreviated as MVC | ![]() | |
| is related to the multi-layer architecture | ![]() | |
| is a kind of software architecture | ![]() | |
| reduces coupling because the communication channels between the three components are minimal and easy to find | ![]() | |
| reduces the coupling between the user interface layer and the rest of the system, as well as between different aspects of the UI itself | ![]() | |
| separates the functional layer of the system (the model) from two aspects of the user interface, the view and the controller | ![]() | |
| software architecture | constrains the overall efficiency, reusability and maintainability of the system | ![]() |
| is decided early in the design process, although it will continue to mature as iterative development proceeds | ![]() | |
| must be understood by software engineers | ![]() | |
| see also software architecture^2 | ![]() | |
| see also software architecture^3 | ![]() | |
| pattern | should be as general as possible | ![]() |
| should be described in an easy-to-understand form so that people can determine when and how to use it | ![]() | |
| should contain a solution that has been proven to effectively solve the problem in the indicated context | ![]() |
Next software architecture: stable architecture Up: software architecture Previous software architecture: distributed architecture