顾名思义,就是装修.给房子装修的话就得把原有功能封装一下,暖气啥的包一层,厨房弄个整体橱柜,看起来漂亮.还得在原有功能上加点啥,比如说厕所装个浴霸,洗澡就暖和了,卧室凿个壁橱,多个家具功能. 这也就是这个设计模式的本质.
例子呈上:
1. interfact or abstract class
public interface room{
public void reside(){};
}
2. class which need to be decorated
public class myroom implemented room{
//override
public void reside(){System.out.println("wow, wow, reside")';}
}
3. super class which is used to decorated the step2 class
public class superDecorator implmented room{
//statement an object which need to be decorated
private myroom mymyroom;
//contructor
public superDecorator(room roomIns){
this.mymyroom = roomIns;
}
//override
public void reside(){
mymyroom.reside();
}
}
4. real decorate class
public class realDecorator extends superDecorator{
public realDecorator(room roomIns){
super(roomIns);
}
public void reside(){
System.out.println("bathroom");
super.reside();
}
}