博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Composite UI Application Block (CAB) 概念和术语
阅读量:4321 次
发布时间:2019-06-06

本文共 1697 字,大约阅读时间需要 5 分钟。

首先我们来看看Composite UI Application Block中涉及的相关概念和术语。这里会做一个简单的介绍,后续文章会详细说到其用法。

应用程序架构元素

CAB. Composite UI Application Block的缩写

Module. 应用程序的组成部件,其中包含SmartParts支持Service,业务逻辑和配置信息等

ObjectBuilder.通过策略和配置信息自动创建对象实例的对象构造器。

Shell. 承载了用户接口元素,SmartPart,服务的外壳宿主程序。

Visualizer. CAB中提供的,可以查看应用程序中的WorkItem的动态分级视图的工具。

外壳元素

shell application. 承载了用户接口元素,SmartPart,服务的外壳宿主程序。

SmartPart. 一个展现数据的视图,比如控件,Windows 窗体或是一个向导页。

SmartPartInfo. 存放SmartPart的相关信息的类,以便被workspace所使用,比如可以在Smartpartinfo中设置SmartPart的显示标题。

UIElement. 一个以Shell作为宿主的控件,该控件能被多个Module所共享,这样的控件有:toolbar button , menuitem , status panel

UIElement adapter. 管理特殊类型的UIElement的显示的类

Workspace. 封装了控件和SmartParts的某种可视化的布局的组件,比如以Tab方式显示页面。

相关模式

Blackboard. 通过提供一个共享信息的地方,使其他组件能设置或获取这个地方的信息,已达到信息共享的模式。

Builder/Inversion of Control/Dependency Injection. 该模式通过组件之间的依赖关系进行运行时的注入,来达到组件重用和松散耦合的目的。

Event Broker. 允许松散耦合的组件通过发布订阅的方式进行通讯的模式。

Memento.持久化一个对象的内部状态状态,并在需要的时候可以在后期对状态进行恢复的模式。

Model-View-Controller (MVC). 该模式将领域模型,视图和基于用户输入产生的行为(控制器)分成3个不同的组成部分。视图部分提供给用户进行交互,交互信息通过视图传到控制器,控制器更新模型,模型引发事件,从而更新视图。关系图如下:

mvc.png

Model-View-Presenter (MVP). 该模式将领域模型,视图和基于用户输入产生的行为(控制器)分成3个不同的组成部分。视图部分提供给用户进行交互,交互信息通过视图传到控制器,控制器更新模型,模式触发事件到控制器,同时,控制器负责更新视图。关系图如下:

mvp.png

相关编程模型

Component. 应用程序的可视或非可视组成部件,比如SmartParts, services, 和控件.

Container. 包含了组件或服务的类。

event broker. 支持松散耦合的发布订阅事件机制的系统。

State. 存在于WorkItem中,以键-值的字典的方式来存放共享信息。

Service.以松散耦合的方式为其他的组件提供功能的组件。比如:ModuleLoaderService

WorkItem. 运行时的组件和服务的容器,该容器能协作其中封装的用例代码的执行。一般WorkItem和用例对应。

相关角色

infrastructure developer. 负责进行应用程序的基础服务的开发的开发人员。

module developer. 负责进行应用程序的业务组件的开发的开发人员。

shell developer. 负责建立应用程序外壳的开发人员。

SmartPart developer. 负责开发应用程序的SmartParts的开发人员。

转载于:https://www.cnblogs.com/lglruirui/archive/2010/06/25/1765228.html

你可能感兴趣的文章
使用缓存的9大误区(下)转载
查看>>
appium键值对的应用
查看>>
MyEclipse 8.X 通用算法
查看>>
selenium.Phantomjs设置浏览器请求头
查看>>
Java Bigdecimal使用
查看>>
SQL注入之绕过WAF和Filter
查看>>
jquery validate使用方法
查看>>
DataNode 工作机制
查看>>
windows系统下安装MySQL
查看>>
错误提示总结
查看>>
实验二+070+胡阳洋
查看>>
Linux IPC实践(3) --具名FIFO
查看>>
Qt之模拟时钟
查看>>
第一次接触安卓--记于2015.8.21
查看>>
(转)在分层架构下寻找java web漏洞
查看>>
mac下多线程实现处理
查看>>
C++ ifstream ofstream
查看>>
跟初学者学习IbatisNet第四篇
查看>>
seL4环境配置
查看>>
Git报错:insufficient permission for adding an object to repository database .git/objects
查看>>