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

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

 

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

 

 

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

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

 

 

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

 

 

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

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

 

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

 

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

 

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

时间: 2024-08-04 01:12:37

OEA 扩展属性系统 - 主要设计类图的相关文章

OEA 扩展属性系统 - 任意适配 WPF Binding 的设计分析

OEA 将会使用最新的扩展属性系统来编写实体类,而这些实体类需要绑定到WPF界面上.那么,扩展属性如何支持绑定呢?下面的图是分析在 WPF 中如何支持 DataTable 的动态列绑定.之后的 OEA 扩展属性系统中,会做出类似的设计,以支持绑定扩展属性.   图1 WPF 中 DataTable 支持绑定的核心类分析   图2 WPF 中为 DataTable 生成视图模型的流程图

《OEA - 实体扩展属性系统 - 设计方案说明书》

 这篇设计文档是 12 月份写来参加公司的研发峰会的,自己倒是信心满满,不过最后还是没有入围.现在想想也没啥大用,所以贴出来,期待与园友交流.     文档有点长,没全部贴在博客中,有兴趣的可以下载附件中的 PDF.  附件:<实体扩展属性系统-系统设计说明书.pdf> ================= 分隔线 ======================     目录 前言... 4 1 背景与需求... 5 1.1 产品 721 客户化开发的需要... 5 1.2 实体动态列... 6

中小型商城系统中的分类/产品属性/扩展属性的数据库设计

声明:之所以定位在"中小型"商城系统,而非"大型"(指淘宝.拍拍这类巨无霸),理由很简单----我一直都呆在(创业型的)小公司,没见过这些大家伙是怎么设计的:)   正文: 之前发表过一篇"商城系统中[商品扩展属性]的表单生成及客户端验证",部分童鞋对于后台数据库的设计比较感兴趣,于是今天把这部分也补上.   一.产品分类设计越来越多的商城系统都热衷于选择"无限级分类"的设计,我也不例外,因为它方便扩展.这部分就不详细展开了,

团队沟通利器之UML——类图

一:用途      用于描述系统的静态结构,或许在所有的uml图中,类图是我们最熟悉不过的,在我们没有接触uml的时候,可能都看过 类图,早在vs2005里面"解决方案资源管理器"的下边有一个"查看类图"的小图标,并且还能支持"正向"和"反向"工程.   <1>反向工程   首先我们定义两个类:User和Product using System; using System.Collections.Generic;

深入浅出UML类图---写得不错,备忘

九种关系总结,EA图中会用到: 关联关系(Association):双向关联,单向关联,自关联.多重性关联Multiplicity. 聚合(Aggregation):整体与部分的关系,整体对象销毁时成员对象不销毁,一般是构造函数或Set方法传入成员对象. 组合(Composition):整体与部分的关系,整体对象销毁时成员对象一并销毁,一般在构造函数中创建成员对象. 依赖关系(Dependency):Driver类依赖Car类的move方法,Driver--->Car 泛化关系(Generali

使用UML类图设计Java应用程序(一)

UML已成为面向对象设计的标准图形化工具,在UML定义的各种图中,本文只涉及类图.Java应用程序由许多类所构成,类图的设计与实现,是Java实现面向对象应用程序的核心.本文通过一个具体的应用程序的设计与实现过程,详细说明了利用UML类图设计Java应用程序,使得开发过程标准化.可视化,代码编程简单化. 在类图中,类被描述为带有三层的盒子. 顶层为类名,一般用加粗字体表示.如果类是抽象的,其名称用斜体表示:如果类是接口,则在类名上方标注<<interface>>. 中间层包含类的属

应用程序框架设计(2):SW系统的窗口类

解释了消息分派机制后,接下来我们开始介绍WINX的窗口类.为了产生比较的效果,我决定从之前我写的"SW系统"的窗口类讲起.在你理解了SW系统的窗口类后,我们再来看6年后WINX中的窗口类在设计上发生了什么样的变化.--这自然也是我个人在窗口类观念上的改变. 1.SW系统的"Hello,World!"程序 #define Uses_SApp #include <sw.h> // SW系统中,你需要记住头文件只有 ,它是SW系统总控文件. // 你只需要告诉

使用UML类图设计Java应用程序(二)

在第一部分中,我们实现了5个类.在本部分中,我们接着说明如何利用UML类图来设计余下的各个类.为减少篇幅,本部分着重讲解UML类图及应用,对Java实现代码不再详细描述. 六.CGPoint类 CGPoint类说明了如何利用非抽象类扩展抽象类.CGPoint类是CGObject的子类,CGPoint类扩展了 CGObject类,CGPoint类没有再它所继承的变量中增加变量,它所声明的方法只有构造函数和要求它实现的抽象方法.其类图如下: Java实现代码为: 七.CGBox类 CGBox类也扩展

6 cocos2dx粒子效果,类图关系,系统原生粒子和自定义粒子效果,粒子编译器软件,爆炸粒子效果,烟花效果,火焰效果,流星效果,漩涡粒子效果,雪花效果,烟雾效果,太阳效果,下雨效果

 1 粒子 示例 2 类图关系 3 系统原生粒子 CCParticleSystem 所有粒子系统的父类 CCParticleSystemPoint. CCParticleSystemQuad 点粒子和方形粒子系统,都继承了CCParticleSystem的所有属性 CCParticleExplosion 爆炸粒子效果 CCParticleFireworks 烟花粒子效果 CCParticleFire 火焰粒子效果 CCParticleMetepr 流行粒子效果 CCParticleSpira