There are three types of design patterns commonly used in today’s technological generation. The MVC, MVP and MVVM. Here is a brief description of the three.
Model View Controller is defined as an architectural software pattern used for executing user interface on computers which was introduced in the 1970s. It separates given software into three parts which means that controlled logic and domain model are decoupled from the user interface which allows the testing and maintenance go easier.
MVC pattern splits an application basically into three parts. They are;
• Model: A model depicts the set of classes that further describes the business logic i.e. data model. It delineates the rules for business data which can be manipulated and changed further.
• View: The View depicts the User Interface modules like jQuery, CSS, HTML, etc. View only displays the data that is obtained from the controller as an outcome.
• Controller: The Controller processes the incoming requests. The controller receives the input from the user via the View; further, it processes the data with the help of Model and then sends it back to View as a result. Characteristically, it acts as a manager between Model and View.
Presently, this pattern is in common use by popular frameworks like,
• Spring Framework
• Ruby on Rails
• Apple iOS development.
MVP stands for Model View Pattern, which is derived from the Model View Controller architectural pattern. In this, the controller is replaced by the presenter. In this, the application is broken into three aspects;
• Model: Like in the previous case, the model depicts a set of classes that illustrates the business logic and data.
• View: The View is described as a passive interface that displays data, and directs the event to the presenter which further acts upon it.
• Presenter: The presenter retrieves the data from a model and further formats it for a display to the View. The presenter does not coordinate the incoming request like the controller.
MVP Pattern is widely used with,
• Window forms
Model View-View Model is an architectural software pattern. MVVM supports two-way data binding between the View and view model. It is a value converter that enables the automatic proliferation of changes, within the View to the state of the View model.
As briefed before, the Model and View in MVVM represent the business logic and UI components. While View model is accountable for commands, exposing methods and other properties that help to preserve the state of view and to influence the model as the outcome of the action in the view.
The MMVM Pattern is mostly used by;
• WPF and
In conclusion, all of the three have some similarities and some differences. All the three have MV i.e. Model and View common with some advantage over one another.