30.16.2.表现层框架设计
30.16.2.1.MVC(Model-View-Controller)模式
MVC 是一种软件设计模式。MVC 把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了控制器、模型、视图3个核心模块。
其中:
1)控制器(Controller):接受用户的输入,并调用模型和视图去完成用户的需求。 2)模型(Model):应用程序的主体部分,表示业务数据和业务逻辑。
3)视图(View):用户看到并与之交流的界面。 三者协作关系如图16.3所示。

使用MVC 模式来设计表现层,可以有以下的优点:
1)允许多种用户界面的扩展。
2)易于维护。
3)易于构建功能强大的用户界面。
4)增加应用的可拓展性、强壮性、灵活性。
30.16.2.2.MVP(Model-View-Presenter)模式
在MVP模式中Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP 不仅仅避免了View和Model之间的耦合,还进一步降低了Presenter对View的依赖。MVP设计模 式如图16.4所示。

使用MVP模式来设计表现层,可以有以下的优点:
1)模型与视图完全分离,可以修改视图而不影响模型。
2)所有的交互都发生在一个地方—Presenter内部,因此可以更高效地使用模型。
3)可以将一个Presenter 用于多个视图,而不需要改变 Presenter 的逻辑。因为视图的变化 总是比模型的变化频繁。
4)如果把逻辑放在Presenter中,就可以脱离用户接口来测试这些逻辑(单元测试)。
30.16.2.3.MVVM(Model-View-View Model)模式
MVVM和MVC、MVP类似,主要目的都是为了实现视图和模型的分离。不同的是MVVM中, View与Model的交互通过ViewModel来实现,也就是View和Model不能直接通信,两者的通信只能通过ViewModel来实现。ViewModel是MVVM的核心,通过DataBinding实现View与Model之间的 双向绑定,其内容包括数据状态处理、数据绑定及数据转换。MVVM流程设计模式如图16.5所示。

