我正在开发一个应用DDD原则的项目,我创建了一个类聚合(Account),它将包含类(代理)和(代理),其中(Account)在数据库中有表。我的问题是:
我需要为我的每个实体(帐户,代理和代理)创建一个Repository类和一个Service类,或者我应该创建AccountRepository并在其中执行3个类的插入和搜索?
答案 0 :(得分:5)
只有聚合根才能拥有存储库,但您必须提供正确的聚合。
在不了解您的域名的情况下,我认为Agency
和Agent
是他们自己的聚合根,因此他们每个人都有自己的存储库,而Account
会通过身份引用它们。< / p>
设计聚合是最复杂的建模任务,整本书可以写在主题上。我强烈建议你阅读Vaughn Vernon的http://azure.github.io/azure-documentdb-js-server/Collection.html#.ErrorCodes。