Headfirst java設計模式 裝飾者模式

2021-08-22 02:48:56 字數 1725 閱讀 7400

裝飾者模式:動態的將責任附加到物件上。若要擴充套件功能,裝飾者模式提供了比繼承更有彈性的替代方案。

**實現:

(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行 而已,心裡很輕鬆。不過教會了我一些東西。遇到真實的問題 首先把問題梳理清楚,最好能畫出流程圖 然後設計類 設計哪些類,類裡面有什麼變數,什麼函式,這個是需要經驗的。多總結 然後實現類的時候 其實就是實現裡面的方法,注意,一定要寫好偽碼...