设计模式--策略模式
2016-04-05 22:22
267 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mnikn/article/details/51068825
当一个基类会派生出不同的子类,而这些子类拥有自己特有的行为时,我们可以考虑使用策略模式。
public interface FlyBehavior { void fly(); } public class FlyWithSwings implements FlyBehavior{ @Override public void fly() { System.out.println("Now I fly with swings!"); } } public class FlyNoWay implements FlyBehavior{ @Override public void fly() { System.out.println("I can't fly!"); } } abstract class Duck{ private FlyBehavior flyBehavior; public abstract void getName(); Duck(){ flyBehavior = new FlyNoWay(); } public void setFlyBehavior(FlyBehavior flyable){ flyBehavior = flyable; } public void performFly(){ flyBehavior.fly(); } } class RedDuck extends Duck{ void getName(){ System.out.println("I'm a red duck!"); } } class YellowDuck extends Duck{ void getName(){ System.out.println("I'm a yellow duck!"); } } class Main{ public static void main(String[] args){ Duck duck = new RedDuck(); duck.performFly(); duck = new RedDuck(); duck.setFlyBehavior(new FlyWithSwings()); duck.getName(); duck.performFly(); duck = new YellowDuck(); duck.getName(); duck.performFly(); } }
相关文章推荐
- 设计模式二 策略模式
- 设计模式之策略模式
- 设计模式(二)学习----策略模式
- 设计模式-简单工厂设计模式与策略模式之java实现
- Java设计模式之策略模式
- 设计模式---复合模式(策略-适配器-装饰者-抽象工厂-组合-观察者)
- 设计模式之——策略模式(Strategy)
- 设计模式与泡mm的关系之strategy策略模式及再思考
- 设计模式之策略模式
- 设计模式之一:策略模式
- 5. php设计模式:策略模式的实际应用
- 设计模式之策略模式
- 设计模式之 策略模式
- c++设计模式:策略模式(Strategy Pattern)
- JAVA-策略设计模式
- c++ 设计模式之 策略模式与工厂模式结合
- Java 策略设计模式
- 再回想一下设计模式——策略模式
- java设计模式之策略模式
- 设计模式之------ 策略模式