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