在看极客时间的《设计模式之美》,看到 12:实战一个虚拟钱包。
想到一个问题:贫血模型的一个 Service 接口的多个实现类,业务逻辑是在实现类里的。而 DDD 是把业务逻辑抽到了 domain 里,那这多个实现类都要抽一套 domain 出来?然后这些 domain 抽一个抽象类或者父类出来?
1
Muzhijiao 2023-01-02 21:38:28 +08:00 via Android 1
对的,这个抽象类还是 domain
|
2
thinkershare 2023-01-03 01:31:52 +08:00 3
DDD 并不是将业务逻辑都抽象到 Domain 里面,只是将 Domain 业务逻辑和 Application 业务逻辑做了分离. 另外 DDD 只是为了让 OO 回到他本来的面目罢了, 和他对应的是事务脚本. DDD 那套规则核心还是从聚合根出发的事务一致性规则. 其它方面应用的都是常用的面向对象设计的经典模式.
|
3
litchinn 2023-01-03 10:21:55 +08:00 1
楼上说的非常好了,针对`让 OO 回到他本来的面目`做一点具体化的补充,`多个实现类都要抽一套 domain 出来`,除了继承实现还有包含成员变量的形式,这个完全看实际的业务定义,木工和钳工都会用锤子敲,这是因为他们都是工人呢,还是因为他们工具里都有锤子呢
|