随机名言

策略模式



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去旅游——————策略算法为:
坐火车

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




posted @ 2019-12-12 10:24  Howlet  阅读(222)  评论(0编辑  收藏  举报

Copyright © By Howl