装饰设计模式的初衷是为了增加对象的某个功能增强而体现出来.
public class person(){
public void do_car(){
syso("开车");
}
public calss newperson()
{
person p;
newperson(person p){
this.p=p;
}
public void do_car(){
p.do_car();
syso("开车的时候顺便听音乐");
}
}
}
如果使用继承也可以实现, 但如何为了增强某个已有的功能而去继承这个类,那么体系是非常臃肿的,
因为如果此时我里面开车还能干其他的,比如说吃饭啊,睡觉啊。 那么还需要继承这个person类。 那么就有越来越多的子类。
但如果用装饰设计模式, 那么只需要对已有的功能去增加即可,免除了装饰和被装饰类的关系