标签:
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
package mode.strategy; /** * @ClassName: IStrategy * @Description: 定义了一个策略接口,这是诸葛亮老人家给赵云的三个锦囊妙计的接口 * @author mpc * @date 2014年12月31日 下午4:10:34 * */ public interface IStrategy { public void operate(); }
package mode.strategy; /** * @ClassName: BackDoor * @Description: 找乔国老帮忙,使孙权不能杀刘备 * @author mpc * @date 2014年12月31日 下午4:12:19 * */ public class BackDoor implements IStrategy { @Override public void operate() { System.out.println("找乔国老帮忙,让吴国太给孙权施加压力,使孙权不能杀刘备。。。。。"); } }
package mode.strategy; /** * @ClassName: GivenGreenLight * @Description: 求吴国太开个绿灯 * @author mpc * @date 2014年12月31日 下午4:14:26 * */ public class GivenGreenLight implements IStrategy { @Override public void operate() { System.out.println("求吴国太开绿灯,放行!"); } }
package mode.strategy; public class BlackEnemy implements IStrategy { @Override public void operate() { System.out.println("孙夫人断后,挡住追兵........."); } }
package mode.strategy; /** * * 锦囊 * * */ public class Context { private IStrategy strategy; // 构造函数,要使用带有哪个妙计的锦囊 public Context(IStrategy stragtegy) { this.strategy = stragtegy; } public void operate() { this.strategy.operate(); } }
package mode.strategy; public class ZhaoYun { /** * * 赵云出场了,他根据诸葛亮给他的交代,依次拆开妙计 * **/ public static void main(String[] args) { Context context; //到吴国的时候拆开第一个 System.out.println("-------------刚到吴国的时候拆开第一个-----------------"); context=new Context(new BackDoor()); context.operate(); System.out.println("---------------第一步搞定--------------------------------"); //刘备乐不思蜀的时候拆开第二个 System.out.println("--------------乐不思蜀了,拆开第二个-------------------------------"); context=new Context(new GivenGreenLight()); context.operate(); System.out.println("----------------第二步搞定---------------------------------------------"); //孙权的追兵到了,拆开第三个 System.out.println("---------------孙权的追兵到了,拆开第三个------------------------------------------------"); context = new Context(new BlackEnemy()); context.operate(); System.out.println("---------------------终了----------------------------------------------------"); } }
标签:
原文地址:http://blog.csdn.net/u012613903/article/details/44240139