首页 > 其他 > 详细

策略模式

时间:2019-12-12 12:09:52      阅读:102      评论:0      收藏:0      [点我收藏+]


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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!