元素 Element
我们将低代码平台中涉及的可以单独识别、使用的概念,称之为元素 Element。
类 Class:元素的结构定义
所有元素的静态结构均使用类 Class进行定义,这是在低代码平台中注册元素时所必须定义的。
模型可以使用 JSON、XML、YAML、代码或 DSL(领域特定语言)等文件格式进行表示,我们默认使用 JSON 格式。
定义元素的静态结构,使用“类 Class”或“结构 Structure”这两个词均可,参照面向对象设计方法,这里使用“类 Class”这个概念,以方便有过面向对象开发的技术人员理解。
核心概念
| 概念 | 简介 | 备注 |
|---|---|---|
| 类 Class | 所有元素的基类 | |
| 属性 Attribute | 对象或类的原始数据成员,直接存储数据 | |
| 刻面 Aspect | 代表一组属性,且有一定的意义 | 如果只是一组 属性,合起来没有明确的语义,那么可以称为“属性组”。合起来有一定语义的,可以将这个“有语义的组”称之为“刻面 Aspect” |
必备属性
所有元素的模型定义中均需要包含 elementType属性。
{
"elementType": "element"
}
元素级公共属性
其他公共属性还包括:
| 属性名称 | 属性 Key | 描述 | 数据类型 | 长度 | 备注 |
|---|---|---|---|---|---|
| 元素唯一标识符 | elementUuid | 所有元素实例 Instance 都必须有 elementUuid,作为全局唯一标识符。 | |||
如一个按钮元素的实例的模型定义大致如下:
{
"elementUuid": "button19fb1cf83bea4a3f918430d6964b5eb7",
"elementType": "button",
"createdAt": "2021-08-30T06:47:59.692Z",
"updatedAt": "2021-08-30T06:47:59.692Z",
"isDeleted": false,
"createdBy": "user_uuid",
"updatedBy": "user_uuid",
"createdByOrg": "org_uuid",
"updatedByOrg": "org_uuid",
"isPublic": false,
"price": 0,
"version": "1.0"
}
元素关系 Relation
元素之间的关系 Relation包括依赖、引用、继承、组合、聚合等。
元素唯一标识定义规则
可以采用结构化 UUID 的形式进行定义。