MVP
2015-08-20 20:37
267 查看
1.MVP是一种广泛使用的UI架构模式,适用于基于事件驱动的应用框架,比如ASP.Net Web Forms 和 Windows Form 应用。MVP中的M和V分别对应于MVC中的Model和View,而P(Presenter)则自然代替了MVC中的Controller。但是MVC并非仅仅表现在从Controller到Presenter的转换,而是更多地体现在Model、View和Presenter之间的交互上。在MVP中,能够与Model直接进行交互的仅限于Presenter,View只能通过Presenter间接地调用Model。Model的独立性在这里的道路真正地体现,它不仅仅与可视化元素的呈现(View)无关,与UI处理逻辑(Presenter)也无关。但MVP的应用是用户驱动,而非Model驱动的,所以Model不需要通知View以提醒其状态发生了改变。
MVP不仅仅避免了View与Model之间的深度耦合,更进一步降低了Presenter对View的依赖,Presenter以来的是一个抽象化的View,即具体的View实现的接口IView,这带来的直接的好处就是使定义在Presenter中的UI处理逻辑变得易于测试,由于Presenter对View的依赖行为定义在接口IView中,我们只需要Mock(模拟)一个实现了该接口的View就能对Presenter进行测试。
构成MVP三要素之间的交互体现在两个方面,即View与Presenter以及Presenter与Model之间的交互。Presenter和Model之间的交互很清晰,它仅仅体现为Presenter对Model的单向调用。Presenter和View的交互有两种模式:PV(Passive View被动的View)以及SC(Supervising Controller)
2.PV:定义其中的针对UI元素的操作不是由View自身主动来控制,而是被动地交给Presenter来操控。
MVP不仅仅避免了View与Model之间的深度耦合,更进一步降低了Presenter对View的依赖,Presenter以来的是一个抽象化的View,即具体的View实现的接口IView,这带来的直接的好处就是使定义在Presenter中的UI处理逻辑变得易于测试,由于Presenter对View的依赖行为定义在接口IView中,我们只需要Mock(模拟)一个实现了该接口的View就能对Presenter进行测试。
构成MVP三要素之间的交互体现在两个方面,即View与Presenter以及Presenter与Model之间的交互。Presenter和Model之间的交互很清晰,它仅仅体现为Presenter对Model的单向调用。Presenter和View的交互有两种模式:PV(Passive View被动的View)以及SC(Supervising Controller)
2.PV:定义其中的针对UI元素的操作不是由View自身主动来控制,而是被动地交给Presenter来操控。
相关文章推荐
- 开源项目
- JPanel中添加一个新的JPanel,结果新的JPanel会自动占满父JPanel
- HDU5407 CRB and Candies
- 问题在哪里?
- ios_按钮圆角边设置
- linux shell自动输入实现
- 浏览器中输入Google.com然后按下回车键
- HDU 4349 Xiao Ming's Hope 找规律
- Perl学习(五)
- POJ 2492 A Bug's Life(并查集拓展)
- Productivity tips, tricks and hacks for academics (2015 edition)
- WCF基础之会话、实例和并发
- CODEVS 3289 花匠
- 杭电1166敌兵布阵(线段树)
- ubuntu 中英文切换引起的编码问题
- iOS如何获取手机当前的网络状态
- 生成不重复long型数字
- 【JavaScript】冒泡排序,字符串排序,数字排序
- C++知识点随笔(五):虚继承
- Catch That Cow