//装饰设计模式 (装饰和继承都能实现一样的特点 进行功能的拓展和增强)
// 区别:
// 当我有2个功能差不多 但是操作数据对象不一样的功能的子类 想要扩展一样的功能的时候
// 继承需要给每个子类进行扩展
// 而装饰设计模式 只要写一份 把旧的传进来就扩展了
class old
{
void fun(){
System.out.print("old ");
}
}
class old_1 extends old
{
void fun()
{
System.out.print("old_1 ");
}
}
class old_2 extends old
{
void fun()
{
System.out.print("old_2 ");
}
}
class news
{
private old o;
news(old o)
{
this.o=o;
}
void kz()
{
o.fun();
System.out.println("update");
}
}
public class Main {
public static void main(String[] args) {
old_1 o1=new old_1();
old_2 o2=new old_2();
news n1=new news(o1);
news n2=new news(o2);
n1.kz();
n2.kz();
}
}
运行结果: