###定义:
- 分别封装行为接口、实现算法族。
- 父类里设置行为接口对象。
- 子类里设置行为实现对象。
分离变化部分,封装接口,基于接口开发各种功能。此模式让行为算法的变化独立于算法的使用者。
###Demo
public abstract class Duck { FlyBehavior flyBehavior; public void fly(){ if(flyBehavior==null) System.out.println("Duck no fly!"); flyBehavior.fly(); } public abstract void display(); public void setFlyBehavior(FlyBehavior flyBehavior){ this.flyBehavior = flyBehavior; }}
public class GreenDuck extends Duck { public GreenDuck(){ flyBehavior = new MaxFlyBehavior(); } @Override public void display() { System.out.println("~~~GreenDuck"); }}
public interface FlyBehavior { void fly();}
public class MaxFlyBehavior implements FlyBehavior { @Override public void fly() { System.out.println("***Max Fly***"); }}
public class Main { public static void main(String[] args) { Duck duck = new GreenDuck(); duck.fly(); duck.display(); }}