我们在进行上下机的时候使用过策略模式,策略模式可以看成是对不同的对象的收费不同,拿一个实例比如说商场打折来说对于不同的类型的VIP用户的折扣是不同的,我们就可以实现下面类图的方法。
策略模式的重心
策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。
算法的平等性
策略模式一个很大的特点就是各个策略算法的平等性。对于一系列具体的策略算法,大家的地位是完全一样的,正因为这个平等性,才能实现算法之间可以相互替换。所有的策略算法在实现上也是相互独立的,相互之间是没有依赖的。
所以可以这样描述这一系列策略算法:策略算法是相同行为的不同实现。
状态模式:
状态模式同策略模式的类图是一样的但是它们的侧重点是不同的,可以说策略模式与状态模式是同卵双胞胎,他们是两个人,只不过他们的DNA是相同的。