鮑勃大叔:是否有些語言不需要設計模式?

banq發表於2022-11-24

有些語言的特點是否使某些設計模式不復存在?  在我的經驗中沒有。相反,有一些語言的特點可以促進某些模式的發展。
作為一個簡單的例子,看看Strategy策略模式:

1、在C語言中,我們可以透過向策略使用者傳遞一個指向策略函式的指標作為引數,或傳遞一個資料結構欄位來實現這一模式。

2、在Java中,我們可以把一個策略介面的實現傳遞給策略使用者的構造器。

3、在Clojure中,你可以將一個策略函式作為引數或資料元素傳遞給策略使用者。

在上述每種情況下,這都是策略模式。
其重要性在於名稱,而不是結構。

無論使用何種語言,開發者都可以討論策略模式是否是一個合適的解決方案。或者,如果程式碼中出現了Strategy這個詞,那麼該程式碼的讀者就會知道其意圖。

這種傳達意圖的能力是設計模式有用的全部原因。這些模式本身並不新鮮,甚至也不太有趣;但為它們命名的能力是一個巨大的優勢。

GOF書提供了23種常用模式的規範名稱和形式。瞭解這些名稱和形式將極大地提高開發人員相互交流的能力,而不管他們選擇什麼語言。
 

相關文章