策略模式


策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户

类图

示例

定义策略接口

public interface Strategy {
    void doSomething();
}

多种策略实现:

public class ConcreteStrategyA implements Strategy {
    @overrite
    void doSomething(){
       
    }
}
public class ConcreteStrategyB implements Strategy {
    @overrite
    void doSomething(){
       
    }
}

策略管理类:

public class Context {
    private Strategy strategy;
    
    public Context(Strategy strategy){
        this.strategy = strategy;
    }
    
    void doSomething(){
        this.strategy.doSomething();
    }
}

使用:

// 使用策略A
Context context = new Context(new ConcreteStrategyA());
context.doSomething();

// 使用策略B
Context context = new Context(new ConcreteStrategyB());
context.doSomething();
文章作者: 周君
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 周君 !
评论