裝飾者模式:動態的將責任附加到物件上。若要擴充套件功能,裝飾者模式提供了比繼承更有彈性的替代方案。
**實現:
(1)先宣告beverage和condimentdecorator兩個抽象類
public
abstract
class
beverage
public
abstract
double
cost();
}public
abstract
class
condimentdecorator
extends
beverage
(2)繼承beverage和condimentdecorator,實現相應的具體類
public
class
darkroast
extends
beverage
@override
public
double
cost()
}public
class
decat
extends
beverage
@override
public
double
cost()
}public
class
espresso
extends
beverage
@override
public
double
cost()
}public
class
houseblend
extends
beverage
@override
public
double
cost()
}public
class
mocha
extends
condimentdecorator
@override
public string getdescription()
@override
public
double
cost()
}public
class
soyextends
condimentdecorator
@override
public string getdescription()
@override
public
double
cost()
}public
class
whip
extends
condimentdecorator
@override
public string getdescription()
@override
public
double
cost()
}
(3)測試**
public
class starbuzzcoffee
}
測試結果:
espresso $1.99
dark roast, mocha, mocha, whip $1.8499999999999999
Headfirst java設計模式 外觀模式
外觀模式 提供乙個統一的介面,用來訪問子系統中的一群介面。外觀模式定義了乙個高層介面,讓子系統更容易使用。簡而言之 外觀模式目的是讓介面更簡單。public class amplifier public void off public void setcd cdplayer cdplayer pub...
Headfirst java設計模式 單例模式
單例 件 模式 確保乙個類只有乙個例項,並提供乙個全域性訪問點。實現 1.懶漢式 通過延遲例項化實現的單例模式 使用synchronized處理多執行緒訪問,但是效能較差。public class lazyinstantiazesingleton public static synchronized...
記錄 Head first java 第五章
一開始很害怕第五章。現在自己碼一遍 覺得其實也沒什麼,短短60行 而已,心裡很輕鬆。不過教會了我一些東西。遇到真實的問題 首先把問題梳理清楚,最好能畫出流程圖 然後設計類 設計哪些類,類裡面有什麼變數,什麼函式,這個是需要經驗的。多總結 然後實現類的時候 其實就是實現裡面的方法,注意,一定要寫好偽碼...