相关疑难解决方法(0)

单一责任原则如何与贫富/富域模型相关?

目前正在对从另一个团队接管的内容进行一些代码审查,并对应用SRP及其与贫血或富域模型(由Martin Fowler定义)的关系存在疑问.丰富的域模型概念是拥有智能对象,不仅可以设置/获取其属性,还可以执行更复杂的业务逻辑.我喜欢它如何融入SRP?

假设我的模型类有一些属性可以暴露这些道具并提供一些简单的计算.下一个要求是有可能将此对象数据存储在一些不受我控制的存储对象中,如下所示:

class MyObject {
    // get set
    // parse sth

}
Run Code Online (Sandbox Code Playgroud)

存储方法存储

   storage.store(key, object);
Run Code Online (Sandbox Code Playgroud)

如果MyObject具有这样的存储方法,它是否违反了SRP

public void store(Storage storage) {
    storage.store('keyOne', fieldOne);
    storage.store('keyTwo', fieldTwo);
}
Run Code Online (Sandbox Code Playgroud)

从这个对象的pov来看,能够存储其状态是一个很好的想法.其他方式可能是在这里介绍一种服务,并这样做:

public StorageService {
    private Storage;
    // constructor here
    ....
    public void store(MyObject myobj);
}
Run Code Online (Sandbox Code Playgroud)

你能指点一下我能读到的关于这个问题的链接吗?我在这里找到了一个关于SO的帖子,但它并没有完全回答我的问题.

如何在DDD中解决?根据定义,DDD中的模型很丰富,可以看作有太多的责任.

java domain-driven-design single-responsibility-principle anemic-domain-model

10
推荐指数
1
解决办法
1563
查看次数