OEA 扩展属性系统 - 主要设计类图

简介:

时间有限,简单快速的完成本篇博客……(很多问题在此就不细说清楚了,主要还是记录一下成果。)

 

* 先是整个子系统要完成的需求列表:

image

 

 

* 然后是对它的分析,以及整个逻辑方案的结构。

图中的“概要”部分同时说明了静态结构和运行时时期的划分。

image

 

 

* 以及,这样的结构,如何实现整个需求的描述:

image

 

 

* 逻辑方案中的静态结构,主要还是看以下的类图设计:

第一张,自然是托管属性本身的结构设计。当时只考虑了编译期属性的实现,后来添加了运行时属性的实现。二者实现方案不同,前者使用数据,后者使用哈希表,主要是为了性能及动态之间的权衡。

image

 

使用托管属性的 API,是直接写在 ManagedPropertyRepository 类中的:

image

 

托管属性是一个最底层的可重用组件,为了适配到当前 OEA 的元数据系统上,需要使用一个 IPropertyMetaProvider 接口来提供数据:

image

 

最后一张图,说明了可扩展属性系统如何使用 WPF Binding,整个设计类似于前一篇博客中所说的 DataTable 绑定分析:

image



本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/archive/2011/10/30/2229163.html,如需转载请自行联系原作者

相关文章
|
5月前
|
设计模式 安全 Java
|
1月前
|
编译器 C++
【C++】—— 特殊类设计
【C++】—— 特殊类设计
|
3月前
|
设计模式 Java C++
C++之特殊类的设计
C++之特殊类的设计
9 0
|
4月前
|
设计模式 安全 编译器
C++特殊类设计
C++特殊类设计
|
6月前
|
设计模式 安全 Java
【C++】特殊类设计(下)
【C++】特殊类设计(下)
|
6月前
|
编译器 C++
【C++】特殊类设计(上)
【C++】特殊类设计(上)
|
9月前
|
编译器
特殊类设计
特殊类设计
71 0
|
9月前
|
设计模式 安全 Java
特殊类的设计
特殊类的设计
51 0
|
设计模式 编译器 数据库
【C++】特殊类设计
【C++】特殊类设计
【C++】特殊类设计
类设计:设计卖车的4S店
class Car(object): # 定义车的方法 def move(self): print('---车在移动---') def stop(self): print('---停车---') # 定义一个销售车的店类 class Car...
737 0