策略模式

时间:2019-12-12
本文章向大家介绍策略模式,主要包括策略模式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。


1. 策略模式(Strategy Pattern)

给一个对象(context )以不同的策略(Strategy ),该对象就会执行不同的策略算法,这里需要三个对象

  • 策略算法接口
  • 每个算法的具体实现
  • Context 对象




2. 流程


2.1 策略算法接口

public interface Strategy {
    abstract void travel();
}


2.2 策略算法的具体实现

  • 坐飞机
public class aircraft implements Strategy {

    public void travel() {
        System.out.println("坐飞机");
    }
}
  • 坐火车
public class train implements Strategy {

    public void travel() {
        System.out.println("坐火车");
    }
}


2.3 上下文对象

public class Context {
    
    private Strategy st;

    public Context(Strategy st) {
        this.st = st;
    }
    
    public void Setout(){
        System.out.println("Coneext去旅游——————策略算法为:");
        st.travel();
    }
}


2.4 实现

public static void main(String[] args) {
    
    Context c1 = new Context(new aircraft());
    c1.Setout();
    
    System.out.println("------------------------------");
    
    Context c2 = new Context(new train());
    c2.Setout();
}
Coneext去旅游——————策略算法为:
坐飞机
------------------------------
Coneext去旅游——————策略算法为:
坐火车


说到底策略模式和装饰者模式还是有很大的相似性,都是通过包装来实现----装饰者模式






原文地址:https://www.cnblogs.com/Howlet/p/12027704.html