我试图了解以下两个选项中的哪一个是正确的方法以及为什么。
假设我们有GetHotelInfo(hotel_id)
从 Web 调用到 Controller 的 API。
GetHotelInfo 的逻辑是:
调用GetHotelPropertyData()
(位置、设施……)
调用GetHotelPrice(hotel_id, dates…)
调用GetHotelReviews(hotel_id)
一旦所有结果返回,处理并合并数据并返回包含酒店所有相关数据的 1 个对象。
选项 1:
创建 3 个不同的存储库(HotelPropertyRepo、HotelPriceRepo、HotelReviewsRepo)
创建将使用这 3 个存储库并返回最终结果的 GetHotelInfo 用例。
选项 2:
创建 3 个不同的存储库(HotelPropertyRepo、HotelPriceRepo、HotelReviewsRepo)
创建 3 个不同的用例(GetHotelPropertyDataUseCase、GetHotelPriceUseCase、GetHotelReviewsUseCase)
创建将协调前 3 个用例的 GetHotelInfoUseCase。(它也可以是一个控制器,但这是一个不同的主题)
假设现在只GetHotelInfo
向 Web 公开,但也许在将来,我也会公开一些内部请求。
如果 GetHotelInfo 的实际逻辑不是 3 个端点的组合而是 10 个端点的组合,答案会不会有所不同?
茅侃侃
白板的微信
桃花长相依
相关分类