最近讀了《設計模式: 可復用面向對象軟件的基礎》(Design Patterns: Elements of Reusable Object-Oriented Software)一書,由埃里克·伽瑪(Erich Gamma)等著。此書英文版於 1995 年始發行。中文版我看的是機械工業出版社的版本(該出版社翻譯的書籍向來是詰屈聱牙的,這次也不例外)。該出版社於 2000 發行第一版,2019 年又發行了典藏版。本人借閱的正是這典藏版。
此書討論的主題是如何構建可復用的面向對象軟件,並引出 23 種設計模式。
本人閱讀此書後,結合自己以往設計的經驗作是文,發表自己的一些體悟。
什麼是設計模式
追本溯源,設計模式的概念是源自建築學的,特別是模式語言之父克里斯托弗·亞歷山大(Christopher Alexander)思想。他在1977年出版的 A Pattern Language 這樣說道:每一個模式描述了一個在我們身邊不斷發生的重複的問題以及該問題的解決方案的核心。