数据模型与业务模型(领域模型)的区别

Posted mask哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据模型与业务模型(领域模型)的区别相关的知识,希望对你有一定的参考价值。

1.数据模型(Data model);指业务数据该如何持久化,以及数据之间的关系,即:传统的ER模型;数据模型存在于数据层。

2.业务模型(领域模型:Domain  model):指业务逻辑中,相关联的数据如何联动协同;领域模型存在于领域层;

衔接数据层与领域层的关键对象是Repository(DAO);

 

Entity(实体对象):实体对象是我们正常业务应该用的业务模型,它的字段和方法应 该和业务语言保持一致,和持久化方式无关;。Entity 的生命周期仅存在于内存中, 不需要可序列化和可持久化。

Data object(DO:数据对象):数据库物理表格的映射,不能参与业务逻辑

Data Transfer object(DTO:传输对象):主要作为 Application 层的入参和出参, 比如 CQRS 里的 Command、Query、Event,以及 Request、Response 等都属于 DTO 的范畴。DTO 的价值在于适配不同的业务场景的入参和出参,避免让业务对象变成一个万能大对象。

以上是关于数据模型与业务模型(领域模型)的区别的主要内容,如果未能解决你的问题,请参考以下文章

分层领域模型规约与领域模型命名规约

什么是领域模型(domain model)?贫血模型(anaemic domain model) 和充血模型(rich domain model)有什么区别

业务领域建模Domain Modeling

VODTO与领域模型的概念

业务逻辑和规则——如何将它们与领域模型解耦

运用领域模型