什么是贫血模型

贫血模型也是一种软件设计模式,在面向对象的设计中,它最显著的特点便是实体类(领域模型)仅包含属性字段,和最基本的get/set方法,而没有包含任何与业务逻辑相关的行为
在贫血模型中,业务逻辑往往被移到了服务层或者其他地方,而不是和领域对象紧密结合。这种设计虽然让领域对象变得简单,但违背了面向对象设计中的“将数据和行为封装在一起”的原则, 大部分业务逻辑都放在服务层或应用层进行处理,导致领域模型只起到数据载体的作用。
比如传统MVC开发结构:

image-20251221232337117

什么是充血模型

与贫血模型相对,其数据与行为集中、具有高内聚性、封装性强的特点,它将一个对象的属性信息与基本行为逻辑聚合到一个类中,往往包含一个对象的公共方法,比如一些基本的信息校验、一些key的拼接、字符串切割,金融领域对象的一些计算例如,罚息等。
除此之外,充血模型不仅仅是说一个对象,将一个Service服务相关所需要的各个零部件(模型、仓储、工厂)放在一个包结构下也可以看作是充血模型
使其在使用一个对象的同时,还能获取到这个对象所提供的一系列方法信息,避免了在后面的开发过程中再次处理同类逻辑。

image-20251221232427384

eg:

image-20251221232523441