1、策略模式概述:
策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式。策略模式是一种行为型模式《设计模式的艺术》
使用场景:
策略模式常用于解决某一个问题,或者是实现某个功能时会存在多种实现方法,因而将每个方法进行一定的封装,由使用者决定使用哪种方法。
2、策略模式UML类图:
image.png
Context(环境类):环境类作为策略的使用者,在实现某种功能时可以采取多种方法来实现。在环境类中维护一个策略类的引用,调用策略类的方法。
Strategy(抽象策略类):作为策略类的公共父类,定义策略类的基础方法。
ConcreteStrategy(具体策略类):实现抽象策略类中定义的公共接口,完成具体功能。
3、策略模式示例:
策略模式实现:
/**
* 视频播放器:环境类
*/
public class MediaPlayer {
private Decoder decoder;
public void setDecoder(Decoder decoder) {
this.decoder = decoder;
}
public void decode