前面介绍了 MVP 模式。在运用 MVP 模式时,有一些功能是通用的——不管开发任何应用,都需要实现这些功能。那么我们把这些相对固定的功能抽取出来,就构成了图形界面的开放框架。这里讨论的是“平台无关模型”,与具体的技术或语言无关,在后续的文章中会分别介绍对应的 flash 和 java 实现。
首先让我们看一下在 MVP 中哪些部分可以抽取出来。 MVP 模式中,对象间的交互主要包括以下几个部分:
表示子系统,包括 Presenter , View 和 Command ,能够处理 View 和 Command 之间的消息映射。
表示子系统中可以扩展的一些功能:
连接:两个 View 之间的连线
布局:根据特定的规则自动布局
数据子系统:维护 Model ,封装数据操作供 Command 调用;实现 Selection
实现变化通知,当Model改变时自动通知View重画。
首先讨论表示子系统。这部分很简单也很常见:
其中Notify,Layout,Link暂不考虑