低代码开发平台的设计与实现:基于元数据模型
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.7 实例服务设计小结

与当事人相比,实例的序列图增加了初始化initInst,以及调用getDna和getLayout。这些多出来的服务调用对元数据模型来说比较容易理解。由于业务模型的不确定性,所以需要增加额外的定义信息,数据结构由Dna决定,页面布局由InstLayout决定。

创建业务对象的一般方法是,在后台使用new操作符,不需要调用专门初始化服务,除非对象构造比较复杂。实例创建依赖于Dna,不能简单地使用new操作符,而是通过专门创建服务initInst,后者调用getDna服务得到包含元数据的结构信息的Dna来实现的。当事人前台界面展现是基于当事人数据结构定制化开发出来的,而在元数模型的应用中,数据结构可以灵活定义,在界面展现时,需要基于Dna对应的InstLayout来展现实例,因此,界面展现需要调用服务getLayout获取页面布局,还要调用getDna服务获取界面展现依赖的Dna。

总之,基于元数据模型的系统设计,在业务处理逻辑过程中,总是依赖Dna,界面展现同时依赖Dna和InstLayout,这是与传统系统设计的差别所在。这一差别为我们带来了模型可灵活扩展和界面可灵活配置的能力。经过上述分析,实例服务有:

1)initInst:初始化实例。

2)saveInst:保存实例。

3)getInst:获取实例。

4)deleteInst:删除实例。

5)getLayout:获取页面布局。

6)getDna:获取Dna。

7)filterInst:查询实例。

接下去分别介绍上述initInst、saveInst、getInst、deleteInst和getDna五个服务,getLayout服务和filterInst服务将在后面介绍。