装饰设计模式

2018-01-29  本文已影响7人  andpy

装饰设计模式

装饰模式:动态的给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式好比生成子类实现更为灵活。装饰模式是一种对象结构型模式.


装饰模式.png

使用场景

代码案例:

Component

interface Component {
    public void operation();
}

Decorator

public class Decorator implements Component {

    private Component component;//维持一个对抽象构件对象的引用

    public Decorator(Component component) {
        this.component = component;
    }

    @Override
    public void operation() {
        component.operation();
    }
}

ConcreteDecorator

public class ConcreteDecorator extends Decorator {
    public ConcreteDecorator(Component component) {
        super(component);
    }

    @Override
    public void operation() {
        super.operation();//调用原有业务方法
        addedBehavior();
    }
    //新业务增加的方法
    private void addedBehavior() {

    }
}

优点

虽然比继承的方式,更加的灵活,但是出错的概率更加的大了。

在andrid中运用

context类族在装饰模式的运用.
ContextWrapper


ContextWrapper.png
ContextWrapper01.png

具体讲的实现在ContextImp


ContextImp.png ContextImp01.png
上一篇 下一篇

猜你喜欢

热点阅读