数据模型与业务模型(领域模型)的区别
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)有什么区别