策略模式:定义了算法族,分别封装起来,让它们之间可以互相转换,此模式让算法的变化独立于使用算法的客户。
设计原则:
1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
2.针对接口编程(针对超类)而不是针对实现编程。
3.多用组合少用继承。
抽象出来的飞行行为:
public interface FlyBehavior { void fly(); }
具体的不同飞行行为:
public class FlyWithLag implements FlyBehavior{ @Override public void fly() { System.out.println("用脚去飞~"); } }
public class FlyWithSwing implements FlyBehavior { @Override public void fly() { System.out.println("会用翅膀飞~"); } }
抽象Duck类
public abstract class Duck { //使用组合的方式 private FlyBehavior flyBehavior; public Duck(FlyBehavior flyBehavior) { this.flyBehavior = flyBehavior; } public void displayFlay(){ flyBehavior.fly(); } }
具体的不同类Duck
public class YellowDuck extends Duck{ public YellowDuck(FlyBehavior flyBehavior) { super(flyBehavior); } }
public class BlackDuck extends Duck { public BlackDuck(FlyBehavior flyBehavior) { super(flyBehavior); } }
测试类:
public class DuckTest { public static void main(String[] args) { Duck blackDuck = new BlackDuck(new FlyWithSwing()); blackDuck.displayFlay(); //输出: 会用翅膀飞~ Duck yellowDuck = new YellowDuck(new FlyWithLag()); yellowDuck.displayFlay(); //输出: 用脚去飞~ } }
相关推荐
设计模式--策略模式java例子
设计模式---策略者模式---根据《Head First 设计模式》自己实现
设计模式--策略模式StrategyPattern
java设计模式--策略模式 HeadFirst书中的 装饰者模式
android应用开发设计模式之-策略模式源代码
北大青鸟关于设计模式的PPT,讲述的非常清晰,对于初学设计模式的人来说,非常有用。本篇是关于策略模式的PPT
JAVA设计模式例程-策略模式,在项目中除工厂模式外就数策略模式用得最多了。源程序,可以研究下。不过没有反射,策略模式结合反射的话,基本上就是一个插件架构。可扩展性超强。
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或更多)设计场景和解决策略(实际上这也是很重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想...
设计模式-策略模式-c++版 压缩包中有build好的程序和工程设计到的所有类的源码,还有一个Uml类图
PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML 设计模式02 设计模式03-创建型模式 ...设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。
深入浅出设计模式(C#版)--策略模式--示例代码
设计模式专题之(十六)策略模式---设计模式策略模式示例代码(python--c++)
JAVA-设计模式-行为型模式-策略模式
设计模式-策略模式源代码 .net,策略模式,模式,设计模式 文件包中有UML策略模式详解图
设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或更多)设计场景和解决策略(实际上这也是很重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想...
第 1 章 策略模式【Strategy Pattern】 刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题, 嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看...
设计模式--工厂模式java例子
java常用设计模式-策略模式