Data Mapper API - 不确定组织

Jam*_*mes 7 oop design-patterns datamapper

假设我们有"用户"和"酒店"模型类.我使用User_Mapper和Hotel_Mapper来加载/保存/删除等.然后我想让用户能够标记他们的"最喜欢的"酒店.在数据库中,我有我的user_favourite_hotels表,这是一个简单的链接表,以及一个用于订阅酒店更新的字段.

列出用户最喜欢的酒店时,从API的角度来看,希望如何运作?我的一部分认为这应该是Hotel_Mapper上的"findFavouritesByUserId"方法,但不是说它"感觉"正确 - 但是同事建议"收藏夹"由用户拥有,因此应该在User_Mapper上.

也许我应该有一个User_Hotel_Favourites_Mapper?我想将"收藏夹"数据合并到User对象中,以便在User对象被保存和加载时.我不确定将它拆分为自己的对象和映射器是否更好.

对于如何最好地为上述和任何优点/缺点/经验设置API,我将不胜感激.

非常感谢,

詹姆士.

ngm*_*ngm 2

这个(诚然已经退休的)设计数据层组件的模式和实践指南建议您将该方法放入从调用返回的对象类型的映射器中。

如果您有返回特定类型业务实体的方法,请将这些方法放置在该类型的数据访问逻辑组件中。例如,如果您要检索客户的所有订单,请在订单数据访问逻辑组件中实现该函数,因为您的返回值的类型为 Order。相反,如果您要检索已订购特定产品的所有客户,请在客户数据访问逻辑组件中实现该功能。

因此,在您的示例中,它将进入酒店映射器,因为它正在返回酒店。