Strategy -- 策略模式

public interface Strategy {

	public void operation();
}

/**
 * 三条妙计
 */
class BackDoor implements Strategy {

	@Override
	public void operation() {
		System.out.println("找乔国老帮忙");
	}

}

class GivenGreenLight implements Strategy {

	@Override
	public void operation() {
		System.out.println("求吴国太开个绿灯");
	}

}

class BlockEnemy implements Strategy {

	@Override
	public void operation() {
		System.out.println("孙夫人断后");
	}

}


/**
 * 锦囊盛放妙计
 */
class Context implements Strategy{
	private Strategy mStrategy;
	
	public Context(Strategy s){
		mStrategy = s;
	}

	@Override
	public void operation() {
		mStrategy.operation();
	}
	
	
}





/**
		 * 1.策略模式
		 */
		System.out.println("***********1.策略模式***********");
		//生成第一个锦囊
		Context context  = new Context(new BackDoor());
		System.out.println("使用第 1 条妙计:");
		context.operation();
		//生成第二个锦囊
		context  = new Context(new GivenGreenLight());
		System.out.println("使用第 2 条妙计:");
		context.operation();
		//生成第三个锦囊
		context  = new Context(new BlockEnemy());
		System.out.println("使用第 3 条妙计:");
		context.operation();
		System.out.println("");

猜你喜欢

转载自kingbinchow.iteye.com/blog/1807846
今日推荐