MVC
MVC(Model-View-Controller)主要是做到了关注点分离
1. 组件概述
Model(模型):
代表应用程序的数据和业务逻辑。
负责数据的获取、存储和管理,通常与数据库或外部API进行交互。
不直接与用户界面交互,所有的状态和业务逻辑都集中在这里。
View(视图):
负责显示数据并向用户呈现界面。
接收用户输入并将其传递给Controller进行处理。
应用程序的表现层,通常使用模板引擎或UI框架构建。
Controller(控制器):
作为Model和View之间的中介,处理用户输入并更新Model和View。
接收来自View的输入,调用Model更新数据,然后更新View以反映这些变化。
负责业务逻辑,决定数据如何被展示和处理。
2. 数据流
MVC模式通常遵循以下数据流:
用户与View交互(例如,点击按钮、输入数据)。
View将用户输入传递给Controller。
Controller处理用户输入,可能会调用Model来获取或更新数据。
Model更新其状态并通知Controller。
Controller根据Model的变化更新View。
View重新渲染以显示更新后的数据。
3. 特点
关注点分离:MVC通过将应用程序的业务逻辑、数据和用户界面分离,提高了代码的可读性和可维护性。
灵活性:不同的View可以使用相同的Model,允许开发者在不影响业务逻辑的情况下更改用户界面。
可测试性:由于Controller与View分离,业务逻辑可以更容易地进行单元测试。
4. 适用场景
Web应用程序:MVC是许多Web框架(如Ruby on Rails、ASP.NET MVC、Django)使用的架构模式。
桌面应用程序:MVC也常用于桌面应用程序,特别是在需要清晰分离界面和业务逻辑的情况下。
5. 根据Model来划分 ——主动模式
和被动模式
主动模式
和被动模式
被动模式
:不会主动将它的变化通知给View进行更新,而是由Controller更新View关于Model的变化; 而且只有Controller可以对Model进行更新;主动模式
:Model的修改会通知View更新,利用观察者模式:View为观察者,Model为被观察者。 在Web端,传统意义上的MVC是主动模式; 而在移动端,对数据变化频繁的场景,可以应用MVC的主动模式。
Last updated