Home  >  Article  >  What is the difference between MVC, MVP and MVVM?

What is the difference between MVC, MVP and MVVM?

青灯夜游
青灯夜游Original
2019-04-16 10:27:3024055browse

Difference: MVC stands for "Model-View-Controller", MVP stands for "Model-View-Presenter", and MVVM stands for "Model-View-ViewModel"; MVP and MVVM are both derived from MVC of. In MVC, View reads data directly from Model; in MVP, View does not directly use Model.

What is the difference between MVC, MVP and MVVM?

MVC, MVP and MVVM are three popular design patterns. Among them, MVC stands for model-view-controller, MVP stands for model-view-presenter, and MVVM stands for model-view-view model; MVP and MVVM are all derived from MVC. All of these design patterns generally help in developing loosely composed applications that are easy to test and maintain.

1. MVC (Model-View-Controller)

MVC is a relatively intuitive architectural pattern, originally rooted in server-side Web development. Later, I gradually became competent in client-side Web development and was able to meet its complexity and richness.

What is the difference between MVC, MVP and MVVM?

MVC pattern divides the application into three parts:

●Model: Model (used to encapsulate the business logic related to the application Data and data processing methods)

● View: View (rendered page)

●Controller: Controller (the connector between M and V, used to control the application Process, and business logic of the page)

MVC characteristics:

The characteristic of the MVC model is to achieve separation of concerns, that is, the data model and business and display in the application Logical decoupling. In client-side web development, the code is separated and loosely coupled between the model (M-data, operation data) and view (V-HTML element that displays data), making it easier to develop, maintain and test. client application.

User operation->View (responsible for receiving user input operations)->Controller (business logic processing)->Model (data persistence)->View (feeding the results back to View):

1. View sends instructions to Controller;

2. After Controller completes the business logic, it requires Model to change state;

3. Model sends new data to View, Users get feedback.

2. MVP (Model-View-Presenter)

MVP replaces the Controller in MVC with the Presenter (presentation ), the purpose is to completely cut off the connection between View and Model, with Presenter acting as a bridge to completely isolate the direction of communication between View-Model.

What is the difference between MVC, MVP and MVVM?

MVP features:

● Two-way communication between M, V and P.

●There is no communication between View and Model, and they are all delivered through Presenter. Presenter completely separates Model and View, and the main program logic is implemented in Presenter.

●View is very thin and does not deploy any business logic. It is called "Passive View" (Passive View), that is, it does not have any initiative, while Presenter is very thick and all logic is deployed there.

●The Presenter is not directly related to the specific View, but interacts through a defined interface, so that the Presenter can be kept unchanged when the View is changed, so that it can be reused. Not only that, you can also write a test View to simulate various user operations to test the Presenter – eliminating the need to use automated testing tools.

3. MVVM (Model-View-ViewModel)

MVVM mode renames Presenter to ViewModel, which is basically the same as MVP mode Totally consistent. If MVP is a further improvement of MVC, then MVVM is a complete change in thinking. It takes the idea of ​​"two-way binding of data model data" as its core, so there is no connection between View and Model. The interaction is through ViewModel, and the interaction between Model and ViewModel is two-way, so changes in the data of the view will At the same time, the data source is modified, and changes in the data source data will be immediately reflected on the View.

What is the difference between MVC, MVP and MVVM?

Summary:

In MVC, View will read data directly from Model instead of Through Controller; there is a many-to-one relationship between View and Controller.

In MVP, View does not directly use Model. The communication between them is carried out through Presenter (Controller in MVC). All interactions occur inside Presenter; between View and Presenter One-to-one relationship.

MVVM mode is basically the same as MVP mode. The only difference is that MVVM uses two-way binding (data-binding): changes in View are automatically reflected in ViewModel, and vice versa.

The above is the entire content of this article, I hope it will be helpful to everyone's study. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !

The above is the detailed content of What is the difference between MVC, MVP and MVVM?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn