一、定义:
对一组对象的功能进行增强时,就可以使用该模式进行问题的解决。
二、简单示例
public class PersonDemo {
/**
* @param args
*/
public static void main(String[] args) {
Person p = new Person();
// p.chifan();
NewPerson p1 = new NewPerson(p);
p1.chifan();
NewPerson2 p2 = new NewPerson2();
p2.chifan();
}
}
class Person{
void chifan(){
System.out.println("吃饭");
}
}
//这个类的出现是为了增强Person而出现的。
class NewPerson{
private Person p ;
NewPerson(Person p){
this.p = p;
}
public void chifan(){
System.out.println("开胃酒");
p.chifan();
System.out.println("甜点");
}
}
运行结果:
三、装饰设计模式和继承的区别
1,区别:装饰比继承灵活。
2,特点:装饰类和被装饰类都必须所属同一个接口或者父类。