标签:
定义:动态地给一个对象添加一些额外的职责
类图:
代码:
public abstract class Component {
public abstract void doSomething();
}public class ConcreteComponent extends Component{
@Override
public void doSomething() {
// TODO Auto-generated method stub
}
}public abstract class Decorator extends Component{
private Component component = null;
public Decorator(Component component){
this.component = component;
}
@Override
public void doSomething(){
component.doSomething();
}
}public class ConcreteDecorator extends Decorator{
public ConcreteDecorator(Component component) {
super(component);
// TODO Auto-generated constructor stub
}
private void methods1(){
}
public void doSomething(){
methods1();
super.doSomething();
}
}装饰类和被装饰类可以独立发展
装饰模式是继承关系的一个替代方案
装饰模式可以动态的扩展一个实现类的功能
缺点:
多层的装饰比较复杂
使用场景
需要扩展一个类的功能
需要动态地给一个对象增加功能
标签:
原文地址:http://blog.csdn.net/renpengddxx/article/details/52116020