adamver

设计需要整理,整理变成经验,经验高于智力,应为智慧

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::


 MVP 于 webform 的应用研究 (MVC 的修改架构)

 - Model 以不再只是 MVC 中的纯数据层的数据操作,而升级为一个保存 view 所有大小数据的 "容器",
   并保留了数据操作能力.

 - View 除去所有保存数据的代码,只保留了最简单的 "显示" 功能,并且没有任何逻辑,通过自己的
   Delegate 事件,把 user / client 的 input message 通知 Presenter,但是他并不知道 Presenter
   的任何事情,连是否有人订约自己的事件都不知通,完完全全的是一个无动力和智力的木偶,没人推动
   则一下也不会动,是一个完全能快速仿制生产的产品,不必是熟练工匠我们只要把外观做一做就能仿制.

 - Presenter 相对 MVC 的 Control 其能力和管辖区域大增,当然其精确的控制使自己对 View 和 Model
   的依赖大为提高,V M 的转换变得不再容易,如任意 2 个 V 不再被 P 接受,只有专用的 V 才行, MVC
   的低依赖(有通用接口依赖)转换以经是不可能了,其自身的所有代码都是对应绝对的专用 V M,不过 V
   能快速产生和易于修改使问题比较乐观, M 则因为是领域专用需要改变非常的少,可以不论.

 - asp.net 使用 MVP 比较好原因有:

   - 相对 MVC MVP 更容易实现,因为 MVC 需要有更强大的架构思维能力
   - MVP 的运行效率比 MVC 为高,因为其依赖较高,逻辑命中率更大(当然要负出不少代价)
   - MVP 比较不依赖系统 状态, MVC 运行时系统状态很重要,比较适用于 winform

 - MVP 的原文地址: (提供 java & C# 代码)
   http://www.martinfowler.com/eaaDev/ModelViewPresenter.html

 - 以下是我根据 martinfowler 大师的 MVP 架构,再加多一个模组 Presenter Process 负责控制 webform
   page 之间的流程转换所做成的图: (当然不加上也许更好,但我构想中打算使用 rule engine 故加了上去)

posted on 2006-03-25 16:54  adamver  阅读(2197)  评论(3编辑  收藏  举报