最近笔者在工作当中学习到了一些功能架构,在自我学习的过程中也分享给大家。如有错误之处,还请大家斧正。
想象一下你正在开一家餐厅,有三个主角分别是,客人,服务员,厨师。
他们的职责分别是,User-UI-Logic
MVC Model-View-Controller
Model:数据,业务规则,存储状态。
View:界面展示,显示数据,用户交互。
Controller:接收用户输入,更新 Model 和 View。
流程:User 点击 -> Controller -> 更新 Model -> 通知View -> View 直接读取 Model。
缺点:由于View可以读取Model,导致高耦合,如果系统复杂,维护困难。
MVP Model-View-Presenter
Model:数据,业务规则,存储状态。
View:界面展示,显示数据,用户交互。
Presenter:接收用户输入,更新 Model 和 View。
4.通过事件通信,减少直接调用。
流程:用户点击-> Presenter -> 更新 Model -> 通知View -> presenter 控制更新View
MVC和MVP的区别
主要是View层的区别,在MVC里面View会耦合Model,但是在MVP里面View只能通过Presenter知道Model.