裝飾模式
外觀模式
復用可以產生可靠的軟體
復用產生標準化的軟體
乙個面向復用的設計面對改變更加靈活、已於修復並且易於增加新的功能
裝飾模式(decorator)
外觀模式(façade)
public
class
dogbarkonce
}
public
class
dog
public
class
barkdog
extends
dogbarkonce
implements
dog}
在這個例子中,為了讓現有的dogbarkonce
適配dog
介面,設計了barkdog
介面卡,繼承自dogbarkonce
類並且使用繼承的barkonce()
方法實現介面中的bark()
方法。最終實現了現有類的復用。
這裡使用了繼承(inheritance)來進行復用,也可以使用委託(delegation)來復用,關於繼承和委託的區別,可以參考模組級別的復用——繼承和委託。
下面也給出使用委託的**:
public
class
barkdog
implements
dog}
public
inte***ce
icecream
public
class
plainicecream
implements
icecream
}
public
abstract
class
toppingdecorator
implements
icecream
public
abstract
void
addtopping()
;}
幾個具體裝飾器(concretedecorator):
public
class
candytopping
extends
toppingdecorator
public
void
addtopping()
}
public
class
nutstopping
extends
toppingdecorator
public
class
peanuttopping
extends
toppingdecorator
客戶端**:
1 軟體設計模式概述
設計模式 這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。1977 年,美國著名建築大師 加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫 亞歷山卓 christopher alexander 在他的著作 建築模式語言 城鎮 建築 構造 a pattern language tow...
1 軟體設計模式概述
設計模式 這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。1977 年,美國著名建築大師 加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫 亞歷山卓 christopher alexander 在他的著作 建築模式語言 城鎮 建築 構造 a pattern language tow...
物件導向軟體設計 設計模式學習
工作也從開始c語言,轉向現在的c 表面上看得出,但實際中卻沒有把這種轉變深入到思想中,究其原因還是對物件導向的軟體設計不了解,有必要好好學習一下設計模式這個東東。本文就是設計模式學習第一篇 1物件導向軟體設計中的問題 2設計模式 設計模式 某種問題通用性的解決方案,可重複的模式。就像是一種模具,使用...