OEA 扩展属性系统 - 主要设计类图
时间有限,简单快速的完成本篇博客……(很多问题在此就不细说清楚了,主要还是记录一下成果。)
* 先是整个子系统要完成的需求列表:
* 然后是对它的分析,以及整个逻辑方案的结构。
图中的“概要”部分同时说明了静态结构和运行时时期的划分。
* 以及,这样的结构,如何实现整个需求的描述:
* 逻辑方案中的静态结构,主要还是看以下的类图设计:
第一张,自然是托管属性本身的结构设计。当时只考虑了编译期属性的实现,后来添加了运行时属性的实现。二者实现方案不同,前者使用数据,后者使用哈希表,主要是为了性能及动态之间的权衡。
使用托管属性的 API,是直接写在 ManagedPropertyRepository 类中的:
托管属性是一个最底层的可重用组件,为了适配到当前 OEA 的元数据系统上,需要使用一个 IPropertyMetaProvider 接口来提供数据:
最后一张图,说明了可扩展属性系统如何使用 WPF Binding,整个设计类似于前一篇博客中所说的 DataTable 绑定分析: