目录
策略模式
策略模式中,首先定义了一系列不同的算法,并把它们一一封装起来,然后在策略类中,使这些算法可以相互替换。这意味着,让一个类的行为(算法)可以在类的实例化对象运行时进行更改。
优点:
- 定义了一系列可重用的算法和行为。
- 消除了一些条件语句。
- 可以提供相同行为的不同实现。
缺点:
- Client 必须了解不同的策略行为细节。
应用场景
根据不同的客户属性,采用不同的折扣策略来计算订单中的商品价格:
- 有 1000 或以上积分的客户,每个订单享 5% 折扣。
- 同一订单中,单个商品的数量达到 20 个或以上,享 10% 折扣。
- 订单中的不同商品达到 10 个或以上,享 7% 折扣。
代码示例
实