策略模式、状态模式

501 阅读1分钟

策略模式

设计原则:

  • 封装变化
  • 针对“接口”而非实现编程
  • 多用组合少用继承

概念:

  • 定义算法簇(行为),封装起来,使他们之间可以相互替换。此模式让算法的定义独立于用户。

类图:

状态模式

设计原则:

  • 同上

概念:

  • 允许对象内部状态改变时改变他的行为(行为会改变对象的状态,改变的状态对应不用的行为),对象看起来想修改了他的类。

类图:

总结

  • 策略模式主要用途是独立部分经常会变化的行为或者算法,并在实体类中用接口接收,这样就可以通过组合相同的接口实现不一样的实体类。
  • 状态模式侧重于将个体的状态和行为独立并互相影响,例如人的行为有很多种,学习、抽烟、喝酒、玩游戏。状态分为婴儿、小学生、中学生、社会人员。人初始状态是婴儿,人调用所有行为方法是没有返回结果。等到了中学生,人调用抽烟,状态就会变成社会人员。这时人的状态被改变为社会人员,此时调用学习方法没有返回值。