NO.35 装饰设计模式
对原有类的功能进行升级
装饰设计模式的好处
耦合性不强,被装饰类的变化与装饰类的变化无关
例:
public static void main(String[] args) {
Fage f = new Fage(new Student());
f.code();
/* 结果==javase
javaweb
ssc
数据库
大数据
.... */
}
}
interface Coder {
public void code();
}
class Student implements Coder {
public void code(){
System.out.println("javase");
System.out.println("javaweb");
}
}
class Fage implements Coder {
//获取被装饰类的引用
private Student s;
//在构造方法中传入被装饰类的对象
public Fage(Student s) {
this.s = s;
}
//对原有的功能进行升级
@Override
public void code() {
s.code();
System.out.println("ssc");
System.out.println("数据库");
System.out.println("大数据");
System.out.println("....");
}