阅读(459) (10)

GoFrame 工程开发设计-数据模型与业务模型

2022-03-26 14:42:53 更新

一、数据模型

数据模型又叫做实体模型,主要是来自于底层持久化数据库的数据结构,例如:​MySQL​、​Redis​、​MongoDB​、​Kafka​等等。这部分数据结构是由第三方系统维护的,可以通过工具对其集合数据结构进行识别,并自动生化成对应的程序数据模型代码。这部分数据模型的代码位于​/internal/model/entity​目录下。开发者不需要手动在程序中维护数据模型,在​GoFrame​框架规范中,数据模型统一使用​CLI​工具统一维护,代码自动生成。

image2021-12-20_0-37-25

数据模型示例

二、业务模型

业务模型主要包含两类:接口输入/输出模型 与 业务输入/输出模型,由​model​模型层统一管理。

接口输入/输出模型

接口输入/输出模型用于系统/服务间的接口交互,通常被​api​接口层(​handler​)调用。在​GoFrame​框架规范中,这部分输出输出模型名称以​XxxReq​和​XxxRes​格式命名。

image2021-12-20_0-41-42

接口输入模型示例

业务输入/输出模型

业务输入/输出模型用于进程内部模块/组件之间的方法调用交互,特别是​api->service​或者​service->service​之间的调用。在​GoFrame​框架规范中,这部分输出输出模型名称以​XxxInput​和​XxxOutput​格式命名。

image2021-12-20_0-44-32

业务输入模型与业务输出模型示例

特殊的业务模型DO

在​GoFrame​有一类特殊的业务模型​DO​,介于业务模型与数据模型之间,主要用于结合框架强大的​ORM​组件大大简便​DAO​数据访问操作。

image2021-12-20_0-51-13

DO​主要用于​DAO​数据访问操作

三、其他模型

上面我们讲到的都是由​model​模型层维护的公共模型,但部分场景下还存在内部私有的模型,用于模块内部调用,不对外公开。