文档详情

第五章 接口和抽象类应用-v2.ppt

发布:2017-07-29约1.4千字共30页下载文档
文本预览下载声明
第5章 抽象类与接口的应用 ;抽象类的应用;;;;接口的应用;;;适配器模式;;;工厂模式;;;增加工厂类;;代理模式;;代理部分;;策略模式;策略模式【Strategy Pattern; public interface IStrategy { //每个锦囊妙计都是一个可执行的算法 public void operate(); } ;public class BackDoor implements IStrategy { public void operate() { System.out.println(找乔国老帮忙,让吴国太给孙权施加压力); } };public class GivenGreenLight implements IStrategy { public void operate() { System.out.println(求吴国太开个绿灯,放行!); } };public class BlockEnemy implements IStrategy { public void operate() { System.out.println(孙夫人断后,挡住追兵); } };public class Context { //构造函数,你要使用那个妙计 private IStrategy straegy; public Context(IStrategy strategy){ this.straegy = strategy; } //使用计谋了,看我出招了 public void operate(){ this.straegy.operate(); } };public class ZhaoYun { public static void main(String[] args) { Context context; //刚刚到吴国的时候拆第一个 System.out.println(-----------刚刚到吴国的时候拆第一个 -------------); context = new Context(new BackDoor()); //拿到妙计 context.operate(); //拆开执行 System.out.println(\n\n\n\n\n\n\n\n); //刘备乐不思蜀了,拆第二个了 System.out.println(-----------刘备乐不思蜀了,拆第二个了 -------------); context = new Context(new GivenGreenLight()); context.operate(); //执行了第二个锦囊了 System.out.println(\n\n\n\n\n\n\n\n); //孙权的小兵追了,咋办?拆第三个 System.out.println(---孙权的小兵追了,咋办?拆第三个-------------); context = new Context(new BlockEnemy()); context.operate(); //孙夫人退兵 System.out.println(\n\n\n\n\n\n\n\n); } };就这三招,搞的周郎是“陪了夫人又折兵”呀!这就是策略模式,高内聚低耦合的特点 也表现出来了,还有一个就是扩展性,也就是OCP 原则,策略类可以继续增加下去,只要修 改Context.java 就可以了。;接口与抽象类的区别
显示全部
相似文档