2011-04-09 83 views
1

任何人都知道設計模式的列表只適用於靜態類型語言,但不適用於動態類型語言?設計模式列表僅適用於靜態類型語言,但不適用於動態類型語言?

E.g.策略

+0

請你可以發表你想找的例子嗎?問題似乎很通用。 – Nilesh 2011-04-09 12:53:17

+0

你的例子沒有幫助。戰略模式適用於動態類型語言。 – 2011-04-09 15:29:01

+0

我認爲DP不受語言類型的限制。無論您使用何種語言,它們都是您可以在代碼中實施的原則。至少它應該是OOP語言。 – Arseny 2011-04-10 18:10:26

回答

0

設計模式有兩個方面:對責任進行劃分以改進程序結構,實現靈活性並簡化維護。還有一套語言特定的構造來實現這種模式。在某些情況下,我們用狡猾的設計來補充語言的自然能力。

策略模式被描述爲here

定義一系列的算法,封裝每一個,使得它們可以互換。策略可以讓算法獨立於使用它的客戶端。

現在,將客戶端與實現細節解耦的設計目標無疑適用於動態語言以及靜態語言。

細節有所不同,因爲靜態語言導致我們聲明顯式接口併爲客戶端編碼以使用接口,而動態語言可以使用「鴨子鍵入」但編碼來處理接收預期鴨子的獅子。 (動物 - >吃()...不不!不吃我!)

我期待看到動態代碼中的大多數設計模式的例子可能代表相當不同 - 同樣的問題分離仍然很重要。

相關問題