[置顶] Java设计模式之策略模式与状态模式

时间:2021-06-03 22:00:05
         策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化,而状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。

    我们在进行上下机的时候使用过策略模式,策略模式可以看成是对不同的对象的收费不同,拿一个实例比如说商场打折来说对于不同的类型的VIP用户的折扣是不同的,我们就可以实现下面类图的方法。

     [置顶]        Java设计模式之策略模式与状态模式

       策略模式的重心
  策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。
  算法的平等性
  策略模式一个很大的特点就是各个策略算法的平等性。对于一系列具体的策略算法,大家的地位是完全一样的,正因为这个平等性,才能实现算法之间可以相互替换。所有的策略算法在实现上也是相互独立的,相互之间是没有依赖的。
  所以可以这样描述这一系列策略算法:策略算法是相同行为的不同实现。

状态模式:

  状态模式同策略模式的类图是一样的但是它们的侧重点是不同的,可以说策略模式与状态模式是同卵双胞胎,他们是两个人,只不过他们的DNA是相同的。