我正在尝试实现DDD,所以我创建了以下类
- 用户[域模型]
- UserRepository [管理对象的中央工厂]
- UserMapper + UserDbTable [映射应用程序功能的Mapper并提供CRUD实施]
我的第一个问题是,当模型需要与持久层进行通信时,它是否应该与存储库或映射器联系?就我个人而言,我认为它应该询问存储库,它将与映射器联系并提供所需的功能.
现在我的第二个问题是,同一个类的所有对象应该只有一个存储库,这意味着我将创建一个单例.但如果我的应用程序有很多域模型(比方说20),那么将有20个单身人士.它感觉不对劲.另一种选择是使用DI(依赖注入),但我使用的框架(Zend Framework 1.11)不支持DIC.
我的第三个
singleton domain-driven-design dependency-injection zend-framework