【发布时间】:2017-12-15 20:05:13
【问题描述】:
我正在设计一个运输应用程序并尝试使用 Clean Architecture。我试图找出在哪里保存 Shipment 对象的状态,这样我就不必在每次用户单击 UI 中的按钮时重新实例化一个新对象。这是流程。
- 用户在 UI 中输入送货编号
- UI 控制器处理 UI 事件并实例化用例交互器的实例 一种。将存储库实例传递到用例交互器的构造函数中
- 用例交互器通过调用工厂(例如 CREATE_BY_DELIVERY)来实例化 Shipment 的实例。工厂调用 Repository 从数据库中收集数据。
- 在 UI 上填充交付数据
- 用户然后单击“报价单”按钮
- UI Controller 处理按钮点击事件并调用 Use Case Interactor 的 RATE_QUOTE 方法 一种。用例交互器是否需要像第 3 步一样再次调用 Shipment 工厂,或者用例交互器能否获取已在第 3 步中创建的 Shipment 对象的实例?
- 费率显示在 UI 上
- 用户然后单击处理发货按钮
- UI Controller 处理按钮点击事件并调用 Use Case Interactor 的 PROCESS_SHIPMENT 方法 一种。用例交互器是否需要像第 3 步一样再次调用 Shipment 工厂,或者用例交互器能否获取已在第 3 步中创建的 Shipment 对象的实例?
发货对象的状态应该是 UI 控制器、用例交互器还是存储库上的实例变量?理想情况下,我想将它保存在某个地方,这样我就不需要在每次用户单击 UI 上的按钮时都创建一个新对象。
提前谢谢你!
【问题讨论】:
标签: domain-driven-design ddd-repositories clean-architecture hexagonal-architecture