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