元模型驱动(三):构建我们自己的元模型 -KAYA
我们的目标是建立一个通用的元模型驱动引擎平台!!!
元模型-KAYA 基本构成
(一)模型的世界(KaYa 的基础概念)
老子<<道德经>>中里有一句话:一生二,二生三,三生万物。
客观世界里,组成万物的基础就是原子,原子又具有自己的组成特性。
基于上面的思维,我们需要在元模型里面创建我们自己的具有原子特性的元素。
举栗子:员工这个实体,具有名字,性别,年龄,身份证号码等属性。那么描述这些属性的元素,我们暂时可以把它看成是单个的原子。是描述系统元素的最小单位。我们可以叫它--Property。
Property 是我们这个模型驱动系统里面的最小单位。
但是我们知道,原子也是有很多特性,比如说铁原子,原子核数等决定了原子的分类。所以我们需要赋予 Property 一些特性,用来区分不同的属性。为了建立全模型驱动,在软件世界中需要哪些属性呢?我们要照顾前台,数据库,还有业务操作。我们需要给 Property 提供一下属性。
关键字,类型,长度... ...等信息。不然我们的模型就没办法区分这些原子。
Property 被赋予了以下属性:
ObjectID:全局唯一的标识 ID(具有系统全局唯一性,是我们这个系统里面最重要的概念)
Name: 字段的名称
KindKey:关键字
DataType:字段类型
DefaultValue:默认初始值
DataLength:字段长度
ComponentType:前端的组件名称
Format:验证信息
StartDate:字段的有效开始日期
EndData:字段的有效结束日期
IndexNo:字段的排列顺序(只针对于前台 UI)
Comments:字段描述等信息
原子有了,我们用原子的组合来表示我们具体的客观世界。
举栗子:我们用上面的原子外加原子特性来实现我们软件系统中人的概念。
我们用关键字 Role 来作为原子的集合。
Role 被赋予了以下属性::
ObjectID:全局唯一的标识 ID(具有系统全局唯一性,是我们这个系统里面最重要的概念)
Name: 字段的名称
KindKey:关键字
StartDate:字段的有效开始日期
EndData:字段的有效结束日期
IndexNo:字段的排列顺序(只针对于前台 UI)
Comments:字段描述等信息
(暂时我们只给它这些特性,对于实现流程模型的时候,我们需要给它追加其他一些特性)
为了在模型中细化我们的系统我们再引入一个概念 ProductService,它该表系统或者某一个子系统。
ProductService 赋予几个特性:
ObjectID:全局唯一的标识 ID(具有系统全局唯一性,是我们这个系统里面最重要的概念)
Name: 字段的名称
KindKey:关键字
StartDate:字段的有效开始日期
EndData:字段的有效结束日期
Comments:字段描述等信息
上面的概念我们已经有了,我们怎么用上面的基本元素来描述我们现实的系统呢?
举栗子:
人(Role):
名字(Property)
性别(Property)
住址(Property)
等等,我们就可以描述软件世界的任何对象。我们再给属性(Property)添加具体的特性。就构成了软件系统里面最小的元素--字段。
比如名字(Property):
ObjectID:依赖工具自动生成(后面我们会讲)
Name: 名字
KindKey:Name
DataType:String
DefaultValue:Empty
DataLength:20
ComponentType:TextBox
Format:Empty
StartDate:9999-12-31(默认值表示永久有效)
EndData:9999-12-31(默认值表示永久有效)
IndexNo:0
Comments:表示人的名字
其他字段类似,不再赘述。
我们要按照上面的思路,构建我们自己的元模型。有兴趣的朋友可以自己试试。
如果想学习元模型构建,要花很多的时间在里面,这里不会详细介绍,如果真的有很多的朋友有需求的话,可以在评论区留言,考虑设立专门的元模型建模专区来为大家讲解。
版权声明: 本文为 InfoQ 作者【KaYa】的原创文章。
原文链接:【http://xie.infoq.cn/article/8546eea03353872bdc0856b92】。文章转载请联系作者。
评论