策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
UML图:
与状态模式的区别:
•使用策略模式时,
客户端需要知道所选的具体策略是哪一个,而使用状态模式时,
客户端无须关心具体状态,环境类的状态会根据用户的操作自动转换。
•如果系统中某个类的对象存在多种状态,不同状态下行为有差异,而且这些
状态之间可以发生转换时使用状态模式;
•如果系统中某个类的某一行为存在多种实现方式,而且
这些实现方式可以互换时使用策略模式。