2012-09-22 53 views
2

爲什麼需要在戰略模式中的上下文類?爲什麼我們需要在戰略設計模式中使用Context類?

例如,我想壓縮文件使用zip或rar壓縮。我們可以用下面的文件來解決這個問題。

1.ICompressionStrategy...Its interface 
2.ZipCompressionStrategy ..implements IcompressionStrategy 
3.RarCompressionStrategy ..implements IcompressionStrategy 
4.CompressionContext..Inject IcompressionStrategy 
5.Client..Inject CompressionContext 

在上面的情況下,爲什麼我們需要CompressionContext類?爲什麼我不能將IcompressionStrategy注入到客戶端類中?

在上述場景中使用CompressionContext類的優點是什麼?我可以避免嗎?

這是我講的

http://java.dzone.com/articles/design-patterns-strategy

回答

1

的策略模式的想法是使用一個變量的策略來定製任務的某些部分的例子。

在上面的例子中,上下文不僅僅是簡單地壓縮文件列表。例如,它可能是一個遍歷文件夾層次結構的類,選擇要壓縮的文件,將它們放入列表中,使用壓縮策略並將壓縮結果寫入另一個位置。該算法可以通過提供壓縮策略來定製,該壓縮策略僅用於整個算法的壓縮步驟。

+0

這很有道理。謝謝Nizet!..能否請你給我建議好的鏈接或書詳細學習設計模式? –

+0

維基百科是設計模式的一個很好的資源。您可以參考http://en.wikipedia.org/wiki/Design_Patterns(請參閱模式按類型部分) – Atul

相關問題