2012-10-25 96 views
1

我曾經讀過的戰略格局,並打開封閉的原則看起來都一樣,以me.If它們是相同的,爲什麼我們對他們有不同的名字模式\原則。開閉原則VS策略模式

請在此分享您的想法。

回答

-1

策略模式與運行時選擇不同的算法有關。它沒有說明在維護過程中是否或如何修改一個班級。

打開/關閉原理與維修期間允許擴展做,而不是修改。它沒有提到在運行時實現或選擇不同的算法。

如果這兩個仍然看起來是一樣的你,我建議你寫結合每個模式的一些代碼。這應該使差異清晰。

4

OCP出現在比戰略更加普遍的層面 - 這就是爲什麼它是原則而不是模式。 OCP沒有說明應該有一個Y和Z類的X類,並且以另一個類的W方式進行協作。它只是指出類應該關閉以進行修改,但對於分機開放。

您可以通過外在的一些責任的戰略和編寫新的策​​略,而不是修改類本身的類實現OCP,但它是不尊重OCP的唯一途徑。還有其他模式可以幫助實現OCP,如Abstract Factory。

0

我認爲,設計模式 - 就像治療某些疾病。 和疾病 - 違反S.O.L.I.D.

一兩件事 - 所有的設計模式遵守SOLID原則,其他原則: 不想組成繼承 Incapsulate改變 做高內聚,低耦合 等

這裏從http://www.remondo.net/solid-principles-csharp-open-closed/一些例子:

...這違反了開放/封閉原則。 ...... 一個建立這種方式是通過應用策略模式 ...