2009-11-16 84 views

回答

7

因爲一些組件的實施戰略「的方式來實現的東西」。

的策略模式的要點是讓你選擇做什麼,一個「戰略」,在運行時的方式。

名稱不參考模式作爲一個整體,它指的是執行操作的模式內的對象。

+1

聽起來更像是一個「戰術」在這一點上,不是? 「策略」是不是意味着更大的「總體規劃」式範式? – jldupont

+0

@jldupont:不要怪我,我沒有說出來! :-) – RichieHindle

+0

是的,但這麼多的人這樣做,工廠例如.. – Peter

7

策略模式背後的想法是,「算法可以在運行時被選擇。」 (維基百科,Strategy Pattern)該模式本質上是選擇正確的策略(或行爲)來解決運行時的特定問題。因此,它的名字。

+0

感覺像比@RichieHindle提供的定義更合適的定義。 – jldupont

4

確實,所有模式都是應用程序設計的「策略」。 Strategy模式雖然需要複雜的邏輯,算法等,並對其進行封裝。它可以清理你的代碼,並且允許根據不同的條件使用不同的策略。

Ex。我爲抵押品編寫了一個複雜的利息計算,而不是實際在抵押品類中進行計算,而是將其移入InterestCalcuation(策略)類。然後,當他們開始告訴我的計算需求是不同的,因爲InterestCalculation堅持以IInterestCalculation接口,我可以轉出,並創造新的計算,我需要和抵押類未受影響,儘可能多...