9、 DECORATOR: Mary過完輪到Sarly過生日,還是不要叫她自己挑了,不然這個月伙食費肯定玩完,拿出我去年在華山頂上照的照片,在背面寫上 “最好的的禮物,就是愛你的Fita”,再到街上禮品店買了個像框(賣禮品的MM也很漂亮哦),再找隔壁搞美術設計的Mike設計了一個漂亮的盒子裝起來……,我們都是Decorator,最終都在修飾我這個人呀,怎么樣,看懂了嗎?
裝飾模式:裝飾模式以對客戶端透明的方式擴展對象的功能,是繼承關系的一個替代方案,提供比繼承更多的靈活性。動態給一個對象增加功能,這些功能可以再動態的撤消。增加由一些基本功能的排列組合而產生的非常大量的功能。

它最經典的特征就是:
1.必須有一個它自己的父類為自己的成員變量;
2.必須繼承公共父類。
public interface Component {
public void methodA();
}
public class ConcreteComponent implements Component {
public void methodA() {
//do somthing...
}
}
public class Decorator implements Component {
private Component c;
public Decorator(Component c) {
this.c = c;
}
public void methodA() {
//do sth.
c.methodA();
//do sth.
}
}
下面這個例子來自Head First,收藏
http://www.tkk7.com/sterning/archive/2008/01/21/176679.html
posted on 2008-01-24 11:31
EvanLiu 閱讀(2896)
評論(0) 編輯 收藏 所屬分類:
設計模式