装饰模式:
1:动态的给一个对象添加额外的功能。使其这个对象剧本更丰富功能,某种意义上说,装饰模式比子类继承的方式更灵活。
# Component.java
public abstract class Component {
public abstract void operate();
}
# ConcreteComponent
public class ConcreteComponent extends Component {
@override
public void operate();
}
# Decorator.java
public class Decorator {
// 定义原对象
private Component component;
public Decorator(Component component) {
this.component = component;
}
public void operate() {
operateA();
component.operate();
operateB();
}
public void operateA(){
}
public void operateB(){
}
}
那么在 Android 哪里出现了装饰模式呢 ?
答案就是 Context,Context类只是个抽象类,具体实现是 ContextImpl 。 ContextWrapper这个类就是 Context装饰类,ContextWrapper 内部有个Context 引用 mContext .