vel*_*cat 0 domain-driven-design
我正在使用addImage($ imageId),removeImage($ imageId),getImages($ from,$ count)等方法实现一个实体UserImages.
Phisycally,存储在应用程序级存储中的数据(图像ID集合),提供了很好的功能,如addItem($ keyName,$ item,$ weight),removeItem($ keyName,$ item),getItems($ key, $ from,$ count).
如何使模型使用DDD风格的外部(看起来形成域)存储,而无需引用UserImages实体的存储?重要的是,我不想将所有集合从存储加载到实体,正如传统方法所假设的那样.
希望我对问题提供了很好的解释,如果没有,请告诉我.非常感谢你的帮助.
UserImages听起来不像是一个实体,但更像是一个服务或存储库,你已经有了一个实现 - 应用程序级存储.您可能希望揭露这是一个UserImageRepository,一个库是为你所拥有的一个更合适的名字.更一般地说,只要您的关联的一端可能具有非常大的基数,请考虑将此关联实现为存储库而不是直接对象引用.实体和聚合应该是一致性边界,不一定是它们所代表的概念的完整形式.另外,请查看Effective Aggregate Design以深入了解此主题.