Home  >  Article  >  What is mvc framework and how to understand it

What is mvc framework and how to understand it

coldplay.xixi
coldplay.xixiOriginal
2020-11-16 14:11:4413325browse

The mvc framework is a software design paradigm that uses a method to separate business logic, data, and interface display to organize code, gather business logic into a component, and improve and personalize the interface and user interaction. , there is no need to rewrite the business logic.

What is mvc framework and how to understand it

1. What is mvc

Model View Controller is the abbreviation of model-view-controller. A software design model that organizes code in a way that separates business logic, data, and interface display, and gathers business logic into one component. When improving and personalizing the interface and user interaction, there is no need to rewrite the business logic. . MVC is used to map traditional input, processing, and output functions into a logical graphical user interface structure.

  • mvc is an architecture similar to three layers. It mainly uses the idea of ​​encapsulation (layering) to reduce the degree of coupling, thereby making our system more flexible and scalable.

  • The model is the part of the application that handles data logic. Typically model objects are responsible for accessing data in the database.

  • view is the part of the application that handles data display. Usually views are created based on the data model.

  • The controller is the part of the application that handles data interaction. Typically the controller is responsible for reading data from the view, controlling user input, and sending it to the model.

2. Advantages of mvc

(1) Multiple views share a model, greatly improving the reusability of the code.

(2) The three modules are independent of each other, and changing one of them will not affect the other two. Therefore, good loosely coupled components can be built based on this design pattern.

(3) The controller improves the flexibility and controllability of the application. Controllers can be used to connect different models and views to fulfill user needs, so controllers can provide a powerful means of structuring applications.

3. Disadvantages of mvc

(1) Increases the complexity of system structure and implementation.

For simple pages, strictly follow MVC and separate the model, view and controller, which will increase the complexity of the structure, may cause too many update operations, and reduce operating efficiency.

(2) The view and the controller are too closely connected.

The view and the controller are components that are separated from each other, but are indeed closely related. The view does not have the existence of the controller, and its application is very limited, and vice versa, which hinders their independent reuse.

(3) View’s inefficient access to model data.

Depending on the model operation interface, the view may need to be called multiple times to obtain enough display data. Unnecessarily frequent access to unchanged data will also harm operational performance.

(4) Currently, some advanced interface tools or constructors do not support mvc.

The cost of adapting these tools to suit MVC needs and creating separate components is very high, making it difficult to use MVC.

In summary, for the development of large-scale applications with a large number of user interfaces and complex business logic, MVC will bring your software to a new level in terms of robustness, code reuse and structure. Although it will take a certain amount of work when initially building the MVC framework, in the long run, it will greatly improve the efficiency of later software development. Therefore, when we apply it specifically, we must comprehensively consider its scope of application,

4. Framework vs. Design Pattern

(1) Framework usually means code reuse, while design pattern It is design reuse,

The architecture is somewhere in between, part of the code is reused, part of the design is reused, and sometimes analysis can also be reused.

There are three levels of reuse in software production:

Internal reuse, that is, abstract blocks that can be used publicly in the same application;

Code reuse, that is, the combination of common modules Develop a library or tool set so that it can be used in multiple applications and fields;

The reuse of application frameworks is to provide a common or ready-made infrastructure for specialized fields to obtain the highest level of reusability.

(2) Design pattern is a description of a recurring problem in a certain environment and a solution to the problem. It is more abstract than a framework.

The framework can be represented by code, and can also be directly executed or reused, but for patterns, only instances can be represented by code.

Design patterns are smaller elements than frames. A framework often contains one or more design patterns. The framework is always aimed at a specific application field, but the same pattern can be applied to various applications.

It can be said that the framework is the software, and the design pattern is the knowledge of the software.

(3) In short: the framework is great wisdom, used to divide labor in software design; design patterns are small skills, which propose solutions to specific problems to improve code reuse and reduce coupling. .

5. Summary

Through the study of MVC, we need to know that it is a framework used to separate page and database access, reducing the coupling between the two. At the same time, through the control of the Controller, it also makes the system more flexible and our code more robust. , more reusable, but everything has its scope of application. We can't just think it's good and dare to use it blindly. Sometimes it may be counterproductive, so the learning of MVC still needs us to discuss it slowly in the future.

Related free recommendations: Programming video courses

The above is the detailed content of What is mvc framework and how to understand it. 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