一、领域模型
领域模型(Domain Model)是对现实世界中对象的表示,又称为领域对象模型、概念模型、业务实体,它通常都具有目标对象的特征和行为,当多个领域模型结合在一起时,就可以完成各种业务逻辑,其实也是对现实世界中对象之间关联关系的一种还原。
领域模型中有两种相对的模型:贫血模型、充血模型。
二、二者区分
贫血模型
贫血模型指的是领域对象只包含了对象的特征,而没有对象的行为。即 POJO 中只有对象的属性和属性的 get/set 方法,所有的业务逻辑都放在业务层。

优点:各层次之间松耦合,结构清晰,领域对象只是用作存放和传输的载体。
缺点:只有属性没有行为的对象是没有生命的,这样的对象不是真正的对象,而且业务逻辑层将会十分庞大。
使用方式:在对象的外围构建一个 Facade 层还封装对象的某些原子操作,以此来简化 Service 层的压力,但是要注意各个模块之间的松耦合,一旦紧耦合,就失去了使用贫血模型的本意。
充血模型
充血模型是指模型中不仅包含了对象的属性,还包含了对象的行为,包括业务逻辑、数据持久化等操作。业务层则只是部分的简答调用逻辑、事务控制、权限控制等。
优点:面向对象开发,业务层简洁单一。
缺点:业务逻辑划分难以明确,什么样的业务放在对象中,什么样的业务放在业务层。模块化开发更难,业务层的人需要深入了解领域层对象的行为方法。
使用方法:当进行复杂业务逻辑开发的时候,可以使用充血模型来简化业务层,但是对象的行为方法一定要单一,尽量做好封装。
领域模型是现实世界对象的表示,包括贫血模型(仅包含属性和getter/setter)和充血模型(含属性与行为)。贫血模型优点是松耦合,但业务逻辑集中在服务层。充血模型则将业务逻辑包含在对象内,简化复杂业务处理,但可能导致模块化开发困难。
1132

被折叠的 条评论
为什么被折叠?



