【发布时间】:2011-05-16 17:12:30
【问题描述】:
如果您有一个联系人,与地址具有 1:* 关系,并且可能还有一个或多个用于保存持久值对象的其他表 - 应该有多少个存储库?
是否应该只有一个 ContactRepository 和一个公共方法(GetContact(),内部调用私有方法 (GetAddresses)),返回一个完全水合的实体(Contact+Addreses)?
还是应该有两个存储库——一个用于联系人,一个用于地址,其中 COntactsRepository 调用 AddressRepository?
还是其他?
谢谢!
【问题讨论】:
-
顺便说一句:我问的原因是......如果所有聚集在一起,使用更大的对象树,我们很快就会遇到糟糕的上帝类。另一方面,如果分开,如何有效地获取所有在 Mulberry 路上有地址的联系人?另一种选择是考虑使用 Repository + 辅助类将其分解一下……但仍有一些交叉(Mulberry 驱动器示例)我不知道该放在哪里。救命!
标签: design-patterns repository-pattern