自学内容网 自学内容网

系统架构设计师教程 第13章 13.2 表现层架构设计 笔记

13.2 表现层框架设计 ★★★☆☆

13.2.1 表现层设计模式

1.MVC模式

MVC 把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了控制器、模型、视图三个核心模块。

(1)控制器 (Controller): 接受用户的输入并调用模型和视图去完成用户的需求。该部分是用户界面与Model的接口。 一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。

(2) 模型 (Model): 应用程序的主体部分。模型表示业务数据和业务逻辑。 一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。

(3) 视图 (View): 用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户输入的数据。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。

首先,控制器接收用户的请求,并决定应该调用哪个模型来处理; 然后,模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后,控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。

使用MVC 模式来设计表现层的优点。

(1)允许多种用户界面的扩展。

(2)易于维护。

(3)功能强大的用户界面。

MVC 是构建应用框架的一个较好的设计模式,可以将业务处理与显示分离,将应用分为控 制器、模型和视图,增加了应用的可拓展性、强壮性及灵活性。目前比较先进的 Web 应用框架都是基于MVC 设计模式的。

2. MVP模式

MVP(Model-View-Presenter) 模式Model提供数据, View 负责显示, Controller/Presenter负责逻辑的处理。在MVP中View并不直接使用Model, 它们之间的通信是通过Presenter(MVC 中的Controller) 来进行的,所有的交互都发生在Presenter 内部。

MVP 避免了View和 Model 之间的耦合,降低了 Presenter对 View 的依赖。

Presenter依赖的是一个抽象化的View,即View实现的接口 IView, 使定义在Presenter中的UI处理逻辑变得易于测试。由于Presenter对View的依赖行为定义在接口IView中,只需要一个实现了这个接口的View就能对Presenter进行测试。

使用MVP模式来设计表现层的优点。

(1)模型与视图完全分离,可以修改视图而不影响模型。

(2)可以更高效地使用模型,因为所有的交互都发生Presenter 内部。

(3)可以将一个Presenter用于多个视图,而不需要改变Presenter 的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。

(4)如果把逻辑放在Presenter 中,就可以脱离用户接口来测试这些逻辑(单元测试)。

目前,MVP模式被更多地用在Android 开发当中。

3. MVVM模式

MVVM模式正是为解决MVP 中UI种类变多,接口也会不断增加的问题而提出的。

MVVM模式全称是模型-视图-视图模型 (Model-View-ViewModel),主要目的实现视图和模型的分离,View与Model的交互通过ViewModel来实现。 ViewModel是MVVM的核心,它通过DataBinding实现View与 Model之间的双向绑定,其内容包括数据状态处理、数据绑定及数据转换。

ViewModel, 即视图模型,是一个专门用于数据转换的控制器,它可以把对象信息转换为视图信息,将命令从视图携带到对象。它通过View 发布对象的公共数据,同时向视图提供数据和方法。View和ViewModel之间使用DataBinding及其事件进行通信。View的用户接口事件仍然由View 自身处理,并把相关事件映射到ViewModel,以实现View中的对象与视图模型内容的同步,且可通过双向数据绑定进行更新。

ViewModel通常要实现一个观察者,当数据发生变化, ViewModel能够监听到数据的变化,然后通知对应的视图做自动更新;而当用户操作视图, ViewModel也能监听到视图的变化,再通知数据做改动,从而形成数据的双向绑定。这使得MVVM更适用于数据驱动的场景,尤其是数据操作特别频繁的场景。

但也正是由于数据和视图的双向绑定,导致出现问题时不太好定位来源,有可能由数据问题导致、也有可能由业务逻辑中对视图属性的修改导致。若项目中有计划采用MVVM , 倾向建议使用官方的架构组件ViewModel、LiveData等去实现MVVM。

13.2.2 使用XML设计表现层,统一Web Form与Windows Form的外观

XML (可扩展标记语言)是一种标记语言。 XML标记用于定义数据本身的结构和数据类型。

大多数应用系统, GUI主要是由GUI控件组成。控件可以看成是一个数据对象,其包含位置信息、类型和绑定的事件等。这些信息在XML中都可以作为数据结点保存下来,每一个控件都可以被描述成一个XML结点,而控件的那些相关属性都可以描述成这个XML结点的Attribute。由于XML本身就是一种树形结构描述语言,所以可以很好地支持控件之间的层次结构。

13.2.3 表现层中UIP设计思想

UIP(UserInterface Process Application Block) 是微软社区开发的众多Application Block 中 的其中之一,它是开源的。 UIP 提供了一个扩展的框架,用于简化用户界面与商业逻辑代码的分离的方法,可以用它来写复杂的用户界面导航和工作流处理,并且它能够复用在不同的场景、 并可以随着应用的增加而进行扩展。

主要包括 UI Components、 UI Process Components-协调用户界面的各部分

UIP的组件主要负责的功能:

管理经过UserInterfaceComponents的信息流;

管理UIP中各个事件之间的事务;

修改用户过程的流程以响应异常;

将概念上的用户交互流程从实现或者涉及的设备上分离出来;

保持内部的事务关联状态,通常是持有一个或者多个的与用户交互的事务实体。

13.2.4 表现层动态生成设计思想

基于XML 的界面管理技术可实现灵活的界面配置、界面动态生成和界面定制。其思路是用XML 生成配置文件及界面所需的元数据,按不同需求生成界面元素及软件界面。

基于XML界面管理技术,包括界面配置、界面动态生成和界面定制三部分。

界面配置是对用户界面的静态定义,通过读取配置文件的初始值对界面配置。由界面配置对软件功能进行裁剪、重组和扩充,以实现特殊需求。

界面定制是对用户界面的动态修改过程,在软件运行过程中,用户可按需求和使用习惯, 对界面元素(如菜单、工具栏、键盘命令)的属性(如文字、图标、大小和位置等)进行修改。 软件运行结束,界面定制的结果被保存。

基于XML的界面管理技术实现的管理信息系统实现了用户界面描述信息与功能实现代码的分离,可针对不同用户需求进行界面配置和定制,能适应一定程度内的数据库结构改动。只须对 XML文件稍加修改,即可实现系统的移植。


原文地址:https://blog.csdn.net/z2014z/article/details/142697877

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!