鮑勃大叔:是否有些語言不需要設計模式?
有些語言的特點是否使某些設計模式不復存在? 在我的經驗中沒有。相反,有一些語言的特點可以促進某些模式的發展。
作為一個簡單的例子,看看Strategy策略模式:
1、在C語言中,我們可以透過向策略使用者傳遞一個指向策略函式的指標作為引數,或傳遞一個資料結構欄位來實現這一模式。
2、在Java中,我們可以把一個策略介面的實現傳遞給策略使用者的構造器。
3、在Clojure中,你可以將一個策略函式作為引數或資料元素傳遞給策略使用者。
在上述每種情況下,這都是策略模式。
其重要性在於名稱,而不是結構。
無論使用何種語言,開發者都可以討論策略模式是否是一個合適的解決方案。或者,如果程式碼中出現了Strategy這個詞,那麼該程式碼的讀者就會知道其意圖。
這種傳達意圖的能力是設計模式有用的全部原因。這些模式本身並不新鮮,甚至也不太有趣;但為它們命名的能力是一個巨大的優勢。
GOF書提供了23種常用模式的規範名稱和形式。瞭解這些名稱和形式將極大地提高開發人員相互交流的能力,而不管他們選擇什麼語言。
相關文章
- 鮑勃大叔:程式設計正規化並不排斥!程式設計
- 鮑勃大叔為敏捷正名敏捷
- 鮑勃大叔:SOLID原則適合函式程式設計嗎?Solid函式程式設計
- 拜託:不要像鮑勃大叔那樣重構
- 設計模式(Java語言)- 原型模式設計模式Java原型
- Go語言設計模式彙總Go設計模式
- Go語言實現設計模式之命令模式Go設計模式
- 設計模式之責任鏈模式——Java語言描述設計模式Java
- Go語言實現GoF設計模式:介面卡模式Go設計模式
- 函數語言程式設計讓你忘記設計模式函數程式設計設計模式
- Banq:看了你的設計模式:Observer,有些疑問設計模式Server
- 快收藏!最全GO語言實現設計模式Go設計模式
- 函數語言程式設計下的Iterator模式函數程式設計模式
- 23種設計模式 之 State模式(狀態模式)[C語言實現]設計模式C語言
- 為什麼有些程式語言會死而有些能活下來?
- 客戶決策 | Go語言設計模式實戰Go設計模式
- 使用函數語言程式設計重構模板模式函數程式設計模式
- Coco學程式設計--《設計模式》,語言無關的好書 (轉)程式設計設計模式
- 是否需要漢語程式語言
- 鮑勃大叔是一個從未交付過軟體的欺詐者? - Nico
- 為什麼有些程式設計師不待見 PHP 這門語言?看看30萬程式設計師怎麼說!程式設計師PHP
- 鮑勃大叔:會計學是一門高度創造性學科,取決於系統思維
- Bob大叔提出程式設計師宣言程式設計師
- Go語言實現的23種設計模式之結構型模式Go設計模式
- Java設計模式-17、直譯器模式-自定義語言的實現Java設計模式
- 對鮑勃大叔《Clean Code》書籍各種不同意見的評論收集
- C語言程式設計C語言程式設計
- 程式語言設計,程式設計哲學程式設計
- 網址多語言設計
- JAVA語言程式設計思想Java程式設計
- 函數語言程式設計函數程式設計
- C語言程式設計原理C語言程式設計
- 語言設計的藝術
- c語言程式設計題C語言程式設計
- ‘程式語言‘ ’程式設計工具’程式設計
- Go語言程式設計有哪些利與弊?程式設計時如何判斷是否應該用Go?Go程式設計
- [譯] JavaScript 的函數語言程式設計是一種反模式JavaScript函數程式設計模式
- [翻譯]Bob大叔:反思極限程式設計程式設計