Design patterns 实施返利

Design patterns 实施返利,design-patterns,Design Patterns,经典场景,订单有订单行 客户希望能够对整个订单应用折扣,即固定金额或百分比 实现这一目标的最佳方式是什么 我想在order对象上存储两个字段: 回扣定额 返利率 然后,我可以计算总返利-并使返利成为一个订单行,每次返利字段或订单行更改时,我都会重新计算 注意事项、提示、最佳实践?看看如何使用复合模式 回扣不应存储在对象本身中,而应作为外部实体应用。考虑为实际更改提供足够的灵活性。考虑使用类似复合模式的东西 回扣不应存储在对象本身中,而应作为外部实体应用。考虑为实际更改提供足够的灵活性。将折扣

经典场景,订单有订单行

客户希望能够对整个订单应用折扣,即固定金额或百分比

实现这一目标的最佳方式是什么

我想在order对象上存储两个字段:

  • 回扣定额
  • 返利率
然后,我可以计算总返利-并使返利成为一个订单行,每次返利字段或订单行更改时,我都会重新计算


注意事项、提示、最佳实践?

看看如何使用复合模式


回扣不应存储在对象本身中,而应作为外部实体应用。考虑为实际更改提供足够的灵活性。

考虑使用类似复合模式的东西


回扣不应存储在对象本身中,而应作为外部实体应用。考虑为实际更改提供足够的灵活性。

将折扣逻辑与订单分开有更大的灵活性。例如,业务规则可能会更改为具有更灵活的返利策略,例如,返利仅适用于某些订单行,具体取决于这些项目是否有促销活动。这更类似于一种战略模式(对于您的场景和业务环境来说,这可能是过度的,也可能不是过度的)


在这种情况下,订单将有一个外键进入返利表,该表标识返利策略和任何相关数据,如百分比或固定金额。

将返利逻辑与订单分开有更大的灵活性。例如,业务规则可能会更改为具有更灵活的返利策略,例如,返利仅适用于某些订单行,具体取决于这些项目是否有促销活动。这更类似于一种战略模式(对于您的场景和业务环境来说,这可能是过度的,也可能不是过度的)


在这种情况下,订单将在返利表中包含一个外键,该表标识返利策略和任何相关数据,如百分比或固定金额。

您是否想过将返利添加到所有订单行。如果没有回扣,则为零回扣。可以添加任何折扣

在这种情况下,您应该使用的模式取决于您将如何使用回扣。如果单折扣的订单策略是非常好的


如果回扣可以相互配合(首次购买回扣、10000客户回扣和折扣卡),那么你应该将decorator视为另一种方式,你将不得不实施与回扣组合一样多的策略。

你想过在所有订单行中添加回扣吗。如果没有回扣,则为零回扣。可以添加任何折扣

在这种情况下,您应该使用的模式取决于您将如何使用回扣。如果单折扣的订单策略是非常好的


如果回扣可以相互配合(首次购买回扣、10000客户回扣和折扣卡),那么你应该将decorator视为另一种方式,你将不得不实施与回扣组合一样多的策略。

我在这里没有看到OOD问题。我在这里没有看到OOD问题。