写在前面的话:
离毕业己经三个多月了,从实习到现在来公司己经快一年了,之前学习的好多东西正因为没有在现在的项目中体现,怕自己会忘记所有找了些资料重新冲一下电。记得老师曾经说过,把自己学习的知识,写在博客里,这样方便他人借鉴的同时,自己以后再想回过头来看也方便,故从现在开始每学习一个知识点,就记录一篇文章,些设计模式出自己CBF4LIFE的《我们的设计模式》大体上与之一至。在知识的海洋里我永远只是一只无法游到彼岸的菜鸟。
策略模式【Strategy Pattern】
接口IStrategy只提供一个可执行的方法:
package com.dsl.strategy; /** *一个策略的接口,提供一个妙计的使用方法,讲述的是三国的故事 * @author * */ public interface IStrategy { public void operate();//使用妙计的方法 }
下面是三个实现类:
package com.dsl.strategy; public class Backdoor implements IStrategy { //这是一个走后门的方法 @Override public void operate() { System.out.println("找乔国老帮忙,让吴国太给孙权施加压力"); } }
package com.dsl.strategy; public class GivenGreenLight implements IStrategy { @Override /** * 求吴国太开个绿灯 */ public void operate() { System.out.println("求吴国太开个绿灯,放走..."); } }
package com.dsl.strategy; public class BlockEnemy implements IStrategy{ @Override //阻挡追兵的方法 public void operate() { System.out.println("吴夫人出马,你们这些追兵还不走?"); } }
一个锦囊类用来装妙计呵呵:
package com.dsl.strategy; /** * 一个装妙计的锦囊 * @author DengShenglong * */ public class Context { private IStrategy strategy;//里面必须有妙计撒.. //构造方法主其new的时候就初始化妙计 public Context(IStrategy strategy){ this.strategy=strategy; } //提供一个使用妙计的方法 public void operate(){ strategy.operate(); } }
package com.dsl.strategy; public class ZhaoYun { private static Context context;//他身上是有锦囊的 /** * 赵云来使用锦囊了 * @param args */ public static void main(String[] args) { System.out.println("-----------先去吴国的时候-----------"); context=new Context(new Backdoor());//这里就要使用第一个锦囊了 context.operate(); System.out.println("\n\n"); System.out.println("---------要把吴夫人搞到手嘛------------"); context=new Context(new GivenGreenLight());//要搞到美女必须要开绿灯啊! context.operate(); System.out.println("\n\n"); System.out.println("---------最后要把夫人接到蜀去了---------"); context=new Context(new BlockEnemy());//就要把追兵给赶走 context.operate(); } //策略模式的好处就是:体现了高内聚低耦合的特性 }
相关推荐
java设计模式--策略模式 HeadFirst书中的 装饰者模式
JAVA设计模式例程-策略模式,在项目中除工厂模式外就数策略模式用得最多了。源程序,可以研究下。不过没有反射,策略模式结合反射的话,基本上就是一个插件架构。可扩展性超强。
第 1 章 策略模式【Strategy Pattern】 刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题, 嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看...
设计模式--策略模式java例子
JAVA-设计模式-行为型模式-策略模式
java常用设计模式-策略模式
Java设计模式教程——策略模式Java开发Java经验技巧共13页.pdf.zip
设计模式--策略模式StrategyPattern
logo 13策略模式:接口和多个实现策略模式:接口和多个实现 设计模式(JAVA语言实现)--20种设计模式附带源码PPT模板全文共22页,当前为第14页。 logo 14模板方法模式:抽象类定义final方法模板方法模式:抽象类...
设计模式--工厂模式java例子
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
55-Java设计模式之策略模式与状态模式1
此代码简单的模拟了超市的促销策略,有打折、返钱等操作!针对商场中出现的各种各样的促销策略,很方便的便可实现策略的拓展!
Java设计模式,策略模式的Demo,具体的思想与实现有很多讲得很好的老师,我是看厉风行老师的视频学的,讲得不错,简单易懂
android应用开发设计模式之-策略模式源代码
java设计模式,设计模式公司出品。策略模式,代理模式,单例模式,多例模式,工厂模式,门面模式等。
设计模式-策略模式(Strategy)结合Android小知识讲解,简单明了
策略模式通过定义一组可互换的算法(即策略),将每个算法封装成相应的策略类。这样客户端可以根据需要选择不同的策略,并且能够灵活地切换和扩展策略,而不需要修改原有的代码逻辑。策略模式能够提高代码的灵活性、...