策略模式的java样例实现(以鸭子为例)

来源:互联网 发布:aes256加密算法 java 编辑:程序博客网 时间:2024/06/05 14:56

最近学习了策略模式,看到了一篇非常好的博客,学习了一下并写了一个简单的代码。

博客地址:http://www.cnblogs.com/justinw/archive/2007/02/06/641414.html

代码如下:

Fly接口:

package com.strategy;public interface FlyBehavior {public void fly();}

package com.strategy;public class FlywithWings implements FlyBehavior{public void fly(){System.out.println("fly with wings.");}}

package com.strategy;public class FlynoWay implements FlyBehavior {public  void fly(){System.out.println("fly no way.");}}

鸭子类:

package com.strategy;public class Duck {FlyBehavior fb;public void setFlayperform(FlyBehavior fb){this.fb = fb;}public void display(){System.out.println("Duck");}public void Flyperform(){fb.fly();}}

package com.strategy;public class LarryDuck extends Duck{    public LarryDuck(){    this.setFlayperform(new FlywithWings());    }public void display(){System.out.println("larry duck");}}

package com.strategy;public class PageDuck extends Duck{public PageDuck() {this.setFlayperform(new FlynoWay());;}public void display(){System.out.println("larry duck");}}

测试:

package com.strategy;public class Main {public static void main(String[] args){Duck larryduck = new LarryDuck();larryduck.Flyperform();Duck pageduck = new PageDuck();pageduck.Flyperform();}}



0 0