策略模式.

 阅读目录

public class Duke {      /**      * 策略对象 - 鸭子叫行为      */    private Quackbehavior quackbehavior;      /**      * 策略对象 - 鸭子飞行行为      */    private FlyBehavior flyBehavior;      /**      * 利用多态注入具体的策略对象      */    public Duke(Quackbehavior quackbehavior, FlyBehavior flyBehavior) {         this.quackbehavior = quackbehavior;         this.flyBehavior = flyBehavior;     }      /**      * 策略方法      */    public void performFly() {         flyBehavior.fly();     }      /**      * 策略方法      */    public void performQuack() {         quackbehavior.quack();     }      // 其他方法}
复制代码

   Duke类在策略模式中扮演一个环境(Context)的角色,表示持有策略的引用(quackbehavior、flyBehavior)。

复制代码
public interface Quackbehavior {      void quack(); }
复制代码
复制代码
public interface FlyBehavior {      void fly(); }
复制代码

   这两个接口在策略模式中扮演抽象策略(Strategy)的角色,把公共的行为封装成接口。

    Quackbehavior 的实现类:

 Quack.java
 Squeak.java
 MuteQuack.java

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信