如果说Android源码中哪个地方装饰模式应用的最明显的话,那肯定是非ContextWrapper莫属了,ContextWrapper是一个透明的经典的装饰模式。本文将通过装饰器模式分析Context源码结构。本文基于的Android源码是(android 5.0.0)。首先先介绍一下装饰模式。
装饰模式
意图
装饰模式动态地给对象添加额外的职责,就添加功能来说,它比子类的方式更加灵活。
UML图
简单代码
class Component{
public void operate1(){
//do operate1
System.out.println("operate1");
}
}
class ComponentDecorator extends Component{
private Component mComponent;
public ComponentDecorator(Component component){
mComponent = component;
}
public void operate1(){
// 添加相关的职责
System