設計乙個網上書店,該系統中所有的計算機類圖書(computerbook)每本都有10%的折扣,所有的語言類圖書(languagebook)每本都有2元的折扣,**類圖書(novelbook)每100元有10元的折扣。現使用策略模式來設計該系統,繪製類圖並編成實現。 首先是uml類圖,如下圖所示: **如下:
abstract
class
strategy
class
pricecontext
public
void
getprice
(double money)
else
if(strategy is novelbook)
else
if(strategy is languagebook)
console.
writeline
("打折前的**為:"
, money)
; console.
writeline
("打折後的**為"
, strategy.
price
(money));
console.
writeline
("------------------------");
}}class
computerbook
:strategy
}class
languagebook
:strategy
}class
novelbook
:strategy
}class
program
}
執行結果如下:
設計模式之Decorator與Strategy
最近在學習design pattern.在看完decorator與strategy之後,產生了乙個疑問,兩者之間的區別和聯絡是什麼?decorator與strategy都實現了多型。而其最重要的一點是decorator的多型是基於具體物件。比如我們定義乙個 人 這樣的類,人剛生下來時,除了吃喝拉撒什...
設計模式 策略設計模式
策略設計模式其實就是多型的使用,父類引用指向子類物件。策略模式的最大特點是使得演算法可以在不影響客戶端的情況下發生變化,從而改變不同的功能。策略模式的缺點其實也很明顯,在於策略模式把每一種具體的策略都封裝成乙個實現類,如果策略有很多的話,很顯然是實現類就會導致過多,顯得臃腫。案列 author de...
設計模式 策略模式
策略模式是一種定義一系列演算法的方法,從概念上來看,所有這些方法完成的都是相同的工作,只是實現不同,他們可以用相同的方式呼叫所有的演算法,減少了演算法類和使用演算法類之間的耦合.優點 策略模式的strategy類層次為context定義了一系列可供重用的演算法和行為,繼承有助於吸取這些演算法中的公共...