策略模式

时间:2019-12-12 12:09:52   收藏:0   阅读:104


1. 策略模式(Strategy Pattern)

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




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

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!