装饰器模式

28 阅读1分钟

装饰器模式的目的

解决扩展子类膨胀的问题,比如摊煎饼,可以摊煎饼前,煎个鸡蛋,摊煎饼后,撒点酱

在android中,Context,ContextImpl也就是个装饰模式,我们肯定会在startActivity()前后做点业务操作。

//一个煎饼接口
public interface Pancake {
    void pancake();
}

//牛肉煎饼
public class BeefPancake implements Pancake{

    @Override
    public void pancake() {
        System.out.println("牛肉煎饼");
    }
}

//工作人员
public class Worker {

    Pancake pancake;
    public Worker(){
        pancake = new BeefPancake();
    }

    public void makePancake(){
        System.out.println("煎鸡蛋");
        pancake.pancake();
        System.out.println("撒酱");
    }
}

//使用
Worker worker = new Worker();
worker.makePancake();