【设计模式】MVC、MVP、MVVM
2024-08-28 08:51:16
1、MVC模式:
/** 模擬 Model, View, Controller */
var M = {}, V = {}, C = {};
/** Model 負責存放資料 */
M.data = "hello world";
/** View 負責將資料輸出到螢幕上 */
V.render = (M) => { alert(M.data); }
/** Controller 作為一個 M 和 V 的橋樑 */
C.handleOnload = () => { V.render(M); }
/** 在網頁讀取的時候呼叫 Controller */
window.onload = C.handleOnload;
2、MVP模式
区别:
MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter(MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过Controller。
优点:
实现了Model和View真正的完全分离。视图的变化总是比较频繁。
缺点:
1)Presenter别得臃肿,除了应用逻辑以外,还有大量的View->Model,Model->View的手动同步逻辑,
2)p和v耦合严重。
3、MVVM模式:
用ViewModel代替了Presenter。用DataBinding技术实现V和M的映射。
最新文章
- Maven assembly 打包
- JSP页面转向方式
- node.js和express.js安装和使用步骤 [windows]
- [Node.js] Creating Demo APIs with json-server
- 对于python WSGI的理解
- 粗俗易懂的SQL存储过程在.NET中的实例运用
- 关于用 random 生成伪随机数的一个手笔
- 串string (KMP)
- AFO &;&; OI回忆录
- SpringCloud系列——Feign 服务调用
- tigervnc-server 无法启动问题
- crt sqlplus 中文乱码解决方案:
- [MySQL]典型的行列转换
- Microsoft.AspNet.Identity.EntityFramework/IdentityDbContext.cs
- 实验二 Java面向对象程序设计 20135321
- Go语言 异常panic和恢复recover用法
- Python全栈开发之10、网络编程
- [shell]system和execlp简单示例
- render函数的使用
- 缺少Packages?不妨在这里找
热门文章
- Spring:BeanDefinition&;PostProcessor不了解一下吗?
- 【Java思考】Java 中的实参与形参之间的传递到底是值传递还是引用传递呢?
- MyBatis入门学习-连接oracle实现CURD基本操作
- Css教程玉女心经版本
- 47 _ 循环队列程序演示.swf
- linux网络编程-socket(2)
- GitHub 热点速览 Vol.26:手把手带你做数据库
- JavaScript基础Literal 与 Constructor(008)
- JavaScript基础CallBack函数(015)
- webpack模块打包简易版