【发布时间】:2012-12-20 23:51:06
【问题描述】:
我正在开发一个用于搜索机票的客户端应用程序。我从服务器获得了一个带有搜索结果的 JSON,我应该将此结果表达给客户端。
假设我有一个Fare、AirlineCompany 和AviaTicketSearchResult 对象。 AviaTicketSearchResult 应该包含 AirlineCompany 对象的列表。每个AirlineCompany 应该包含Fares。而且我猜AviaTicketSearchResult 和AirlineCompany 是一个聚合根,因为我有级联删除的规则,当我删除AirlineCompany 时,删除所有与AviaTicketSearchResult 相同的航空公司票价是有意义的。
1) 可以在聚合根 (AirlineCompany) 中包含 Fares 的列表吗?
另一个问题是我应该对Fares 在AirlineCompany 中具有过滤能力。每个票价都有一个行程,每个行程都有一个变体列表 (ItineraryVariant)(不同的航段、旅行等)。当我接受过滤器时,我应该更新我的AirlineCompany 并删除不必要的Fares 或删除混凝土Fare 内不必要的ItineraryVariant。
2) 过滤能力如何应用?
我假设每次应用过滤器时我应该将 Fare 表示为 VO 并从原始数据 (json) 重新创建 Fare 对象,然后在使用过滤后的 AirlineCompany 更新 AviaTicketSearchResult 后将其添加到 AirlineCompany。
【问题讨论】:
标签: oop design-patterns architecture domain-driven-design