透早起身,靜坐四个字久,然後體目睇世界。
這個熟悉又陌生个世界。
行去外口食个腸粉,路上幾個阿叔阿嬸行來行去,有儂正去上街,有儂上街正轉來。
最近讀了《設計模式: 可復用面向對象軟件的基礎》(Design Patterns: Elements of Reusable Object-Oriented Software)一書,由埃里克·伽瑪(Erich Gamma)等著。此書英文版於 1995 年始發行。中文版我看的是機械工業出版社的版本(該出版社翻譯的書籍向來是詰屈聱牙的,這次也不例外)。該出版社於 2000 發行第一版,2019 年又發行了典藏版。本人借閱的正是這典藏版。
此書討論的主題是如何構建可復用的面向對象軟件,並引出 23 種設計模式。
本人閱讀此書後,結合自己以往設計的經驗作是文,發表自己的一些體悟。
追本溯源,設計模式的概念是源自建築學的,特別是模式語言之父克里斯托弗·亞歷山大(Christopher Alexander)思想。他在1977年出版的 A Pattern Language 這樣說道:每一個模式描述了一個在我們身邊不斷發生的重複的問題以及該問題的解決方案的核心。
最近讀了一篇名爲 Foundations for the Study of Software Architecture 的論文。它是由 AT&T 公司的 Dewayne E. Perry 和卡羅拉大學的 Alexander L. Wolf 於 1992 聯合署名發表。
這篇論文不得了,光看名字就覺得很重要,這可是研究軟件架構的基石啊。文中提出了一個重要的軟件架構模型,即:
Software Architecture = { Elements, Form, Rationale } |
翻譯過來就是:
軟件架構 = { 元素, 形式, 理論依據 } |
Perry 和 Wolf 如何得出該模型呢?