MVC模式
2015-08-31 20:29
253 查看
模型利用“观察者”让控制器与视图可以随最新的状态的改变而改变。另一方面,视图和控制器则实现了“策略模式”。控制器是视图的行为,如果你希望有不同的行为,可以直接换一个控制器。视图内部使用组合模式来管理窗口、按钮以及其他的显示组件。
模型与视图应该是观察者模式,模式数据与状态发生变化,可以通知视图进行改变,一个模型可以控制多个视图。控制器与视图、模型是策略模式,控制器实现某个接口,将算法封装,实现的方法里面通过调用视图与模型的方法实现控制,这样控制器的算法与视图、模型解耦。
做法:视图是观察者,模型作为主题将视图注册,模型数据有变化就通知视图做相应改变。控制器封装了客户的算法(实现了客户相要的操作接口),将模型视图传入控制器,调用模型或视图的方法,从而实现了客户的算法,客户通过调用控制器直接控制视图,或者通过控制器调用了模型来影响视图,视图上的响应结果(如事件的监听),然后通过控制器选择模型处理,模型处理后影响视图。
另一个说法;视图的响应通过调用控制器选择不同模型做逻辑流程处理,每个模型做完后对事物造成影响,最终完成后控制器控制视图的改变。这样的好处是每个模型都是独立开来的,对视图的操作,以及视图的影响都在控制器层。
模型与视图应该是观察者模式,模式数据与状态发生变化,可以通知视图进行改变,一个模型可以控制多个视图。控制器与视图、模型是策略模式,控制器实现某个接口,将算法封装,实现的方法里面通过调用视图与模型的方法实现控制,这样控制器的算法与视图、模型解耦。
做法:视图是观察者,模型作为主题将视图注册,模型数据有变化就通知视图做相应改变。控制器封装了客户的算法(实现了客户相要的操作接口),将模型视图传入控制器,调用模型或视图的方法,从而实现了客户的算法,客户通过调用控制器直接控制视图,或者通过控制器调用了模型来影响视图,视图上的响应结果(如事件的监听),然后通过控制器选择模型处理,模型处理后影响视图。
另一个说法;视图的响应通过调用控制器选择不同模型做逻辑流程处理,每个模型做完后对事物造成影响,最终完成后控制器控制视图的改变。这样的好处是每个模型都是独立开来的,对视图的操作,以及视图的影响都在控制器层。
相关文章推荐
- openwrt简单ipk生成及Makefile解释
- linux使用过程中遇到的问题和解决方法
- 网络第一天
- 微信中禁止长按复制的代码
- 数据结构与算法-简介
- HashMap实现原理
- Ubuntu Git服务器搭建及Gitosis安装设置
- XMPP本地服务器搭建
- poj2528 Mayor’s posters 线段树成段替换—简单hash
- Version xx of the JVM is not suitable for this product
- vim复制,删除
- Implement strStr()
- 关于Android中的输入法
- bzoj 2049
- linux程序包管理
- 小打小闹已经开始
- 惠普记事(一)
- IOS 开发笔记——做日历开发的总结
- 共有113款 手机Web开发框架开源软件
- 如何成为一名卓越的前端工程师