Java设计模式之策略模式代码示例
来源:互联网 发布:开淘宝网店赚钱吗 编辑:程序博客网 时间:2024/04/29 01:58
策略设计模式:
Dock超类:
package com.hycz.design.pattern.strategy;import com.hycz.design.pattern.strategy.behavioral.FlyBehavior;import com.hycz.design.pattern.strategy.behavioral.QuackBehavior;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:13 AM * To change this template use File | Settings | File Templates. */public abstract class Duck { public FlyBehavior flyBehavior; public QuackBehavior quackBehavior; public void setFlyBehavior(FlyBehavior flyBehavior) { this.flyBehavior = flyBehavior; } public void setQuackBehavior(QuackBehavior quackBehavior) { this.quackBehavior = quackBehavior; } public abstract void dispaly(); public void swim(){ System.out.printf("All duck float, even decoys!"); } public void performFly(){ flyBehavior.fly(); } public void performQuack(){ quackBehavior.quack(); }}
package com.hycz.design.pattern.strategy.behavioral;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:16 AM * To change this template use File | Settings | File Templates. */public interface FlyBehavior { public void fly();}
package com.hycz.design.pattern.strategy.behavioral;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:49 AM * To change this template use File | Settings | File Templates. */public class FlyNoWings implements FlyBehavior { @Override public void fly() { System.out.println("I'm can't fly !"); }}
package com.hycz.design.pattern.strategy.behavioral;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:47 AM * To change this template use File | Settings | File Templates. */public class FlyWithWings implements FlyBehavior { @Override public void fly() { System.out.println("I'm flying !"); }}
package com.hycz.design.pattern.strategy.behavioral;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:16 AM * To change this template use File | Settings | File Templates. */public interface QuackBehavior { public void quack();}
package com.hycz.design.pattern.strategy.behavioral;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:50 AM * To change this template use File | Settings | File Templates. */public class Quack implements QuackBehavior { @Override public void quack() { System.out.println("Quack !"); }}
package com.hycz.design.pattern.strategy;import com.hycz.design.pattern.strategy.behavioral.FlyNoWings;import com.hycz.design.pattern.strategy.behavioral.Quack;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:55 AM * To change this template use File | Settings | File Templates. */public class ModelDuck extends Duck { public ModelDuck() { flyBehavior = new FlyNoWings(); quackBehavior = new Quack(); } @Override public void dispaly() { System.out.println("I'm a model duck !"); }}
package com.hycz.design.pattern.strategy;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 10:57 AM * To change this template use File | Settings | File Templates. */public class MiniDuckSimulator { public static void main(String[] args) { Duck model = new ModelDuck(); model.dispaly(); model.performFly(); model.performQuack(); }}
- Java设计模式之策略模式代码示例
- C# 设计模式之 策略模式 示例
- 大话设计模式之2策略模式-java代码
- 大话设计模式之策略模式代码
- 设计模式之策略模式代码展示
- Java设计模式之策略设计模式
- Java设计模式之策略设计模式
- JAVA设计模式示例代码
- Java设计模式之策略
- 设计模式之访问者模式代码示例
- 设计模式之适配器模式代码示例
- 设计模式之工厂模式代码示例
- 【JS设计模式】策略模式的代码示例
- 策略模式C++代码示例---《大话设计模式》笔记
- 【设计模式】java工厂模式代码示例
- Java设计模式之策略模式
- java设计模式之 策略模式
- JAVA 设计模式之 策略模式
- The identity 'iPhone Developer: XXX doesn't match any valid certificate/private key
- 快速操作Linux终端命令行的快捷键列表
- android GB版本的camera,录像过程中按“菜单”键会停止录像
- 黑马程序员-JAVA基础-String类与StringBuffer容器
- 在Struts的action中使用Jdom生成xml文件
- Java设计模式之策略模式代码示例
- android 在连拍菜单中,增加连拍张数选项
- J2EE编写代码过程中的分包策略讨论
- android自定义TabWidget
- 在 Linux中oracle中如何使用rlwrap解决上下键使用出现乱码
- Windows phone中如何添加页面跳转动画
- 11137 - Ingenuous Cubrency
- C++中继承技术引发的问题:重载(overload),覆盖(override)和隐藏(hide)的区别
- Code Sign error: Provisioning profile '6805769A-5085-4BE7-B9D1-2859CD2CBE9E' can't be found