簡單裝飾流模式
public class Test2 {
/**
* 裝飾模式
* 畢業學生
*/
public static void main(String[] args) {
HeiMaStudent hm = new HeiMaStudent(new Student());
hm.code();
}
}
interface code{
public void code();
}
class Student implements code{
public void code(){
System.out.println("javase");
System.out.println("javaweb");
}
}
//包裝一下應屆畢業生
class HeiMaStudent implements code{
//獲取被裝飾類的引用
private Student s;
//在構造方法中傳入被裝飾類得對象
public HeiMaStudent(Student s){//相當於要對學生進行包裝
this.s = s;
}
//對原有得功能進行升級
@Override
public void code() {
s.code();//因為我對學生進行包裝我當然就具備學生所具有的功能
System.out.println("html");//把功能進行升級 學了html
System.out.println("javascript");//把功能進行升級 學了javascript
System.out.println("jspservlet");//把功能進行升級 學了html
System.out.println(".....");
}
//包裝後學了這麽東西 在找工作是不是就不愁了 呵呵
}
總結:
裝飾設計模式的好處是什麽呢 那麽就是耦合性沒有那麽強 我也可以繼承student 重寫code() 可是父類做了改動子類也就跟著改動了
還有一個優點 就是我可以選擇包裝類就很多 好像bufferReader(Reader in) 包裝Reader 可以選擇bufferReader 也可以選擇別的包裝類 如果是繼承得化耦合性就太強了
簡單裝飾流模式