首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:层次式架构设计理论与实践--表现层中UIP与动态生成设计思想

一、表现层中UIP设计思想

应用程序通常要用代码来管理用户界面,例如一个窗体可以决定下一个要呈现给用户的窗体。开发人员可以把这些代码写在UI代码中间,但是会使得代码复杂,不易复用、维护和扩展。另一方面,应用程序要运行在其他的平台也变得相当困难,因为它进行控制的逻辑和状态都不能被复用。

在大多数情况下,应用程序需要维护一个状态,如状态存储在窗体中,代码需要访问这个窗体以重新恢复状态。这样做会比较困难并且.代码也会变得不雅,同时也会对用户接口的重用性和可扩展性产生影响。

用户应用系统的时候,可能会先启动一个任务,离开一段时间后再回来继续。如果在中间用户关闭了应用程序,它将失去当前的状态,要想继续任务的话必须一切从头开始。因此设计程序的时候,必须分开来考虑工作流、导航、与商业服务的交互等各个组成部分,以获取数据并呈现给用户。

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

使用UIP框架的应用程序把表现层分为了以下几层。

User Interface Components:这个组件就是原来的表现层,用户看到的和进行交五都是这个组件,它负责获取用户的数据并且返回结果。

User Interface Process Components:这个组件用于协调用户界面的各部分,使其配合后台的活动,例如导航和工作流控制,以及状态和视图的管理。用户看不到这一组件,但是这些组件为User Interface Components提供了重要的支持功能。

图13-5展示了这两层在基于.Net的分布式应用程序中的位置。

UIP的组件主要负责的功能是:管理经过User Interface Components的信息流;管理UIP中各个事件之间的事务;修改用户过程的流程以响应异常;将概念上的用户交互流程从实现或者涉及的设备上分离出来;保持内部的事务关联状态,通常是持有一个或者多个的与用户交互的事务实体。因此,这些组件也能从UI组件收集数据,执行服务器的成组的升级或是跟踪UIP中的任务过程的管理。

二、表现层动态生成设计思想

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

界面配置是对用户界面的静态定义,通过读取配置文件的初始值对界面配置。由界面配置对软件功能进行裁剪、重组和扩充,以实现特殊需求。界面定制是对用户界面的动态修改过程,在软件运行过程中,用户可按需求和使用习惯,对界面元素(如菜单、工具栏、键盘命令)的属性(如文字、图标、大小和位置等)进行修改。软件运行结束,界面定制的结果被保存。

系统通过DOM API读取XM L配置文件的表示层信息(如初始界面大小、位置等),通过数据存取类读取数据库中的数据层信息,运行时由界面元素动态生成界面。界面配置和定制模块在软件运行前后修改配置文件、更改界面内容。基于XML的界面管理技术实现的管理信息系统实现了用户界面描述信息与功能实现代码的分离,可针对不同用户需求进行界面配置和定制,能适应一定程度内的数据库结构改动。只须对XML文件稍加修改,即可实现系统的移植。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OOO-Kn4Nu-QjRqCLQdVwlwCg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券