高内聚低耦合的集中决策设计
💡
原文中文,约1100字,阅读约需3分钟。
📝
内容提要
在构建电子商务平台时,订单模块需要处理货物不可用的情况。命名为cancelOrder会由仓库决定取消订单,而命名为handleItemUnavailable则由订单模块决定下一步操作。为了提高可维护性,应集中决策并封装整个订单生命周期的管理。为了改善客户体验,可以以更低的价格提供类似的产品,而不是立即取消订单。在事件驱动的世界中,可以将此调用转化为更通用的WarehouseItemUnavailable事件,以消除点对点通信并插入更多消费者。这种方法可以在不同的部署策略中扩展。
🎯
关键要点
- 在构建电子商务平台时,订单模块需要处理货物不可用的情况。
- 命名为cancelOrder由仓库决定取消订单,命名为handleItemUnavailable由订单模块决定下一步操作。
- 为了提高可维护性,应集中决策并封装整个订单生命周期的管理。
- 为了改善客户体验,可以以更低的价格提供类似的产品,而不是立即取消订单。
- 在事件驱动的世界中,可以将调用转化为更通用的WarehouseItemUnavailable事件,以消除点对点通信。
- 这种方法可以在不同的部署策略中扩展,订单和仓库可以是同一个应用程序的不同模块或不同的服务。
- 选择handleItemUnavailable可以使更改对仓库透明,避免导入外来概念支持松散耦合。
➡️