內容介紹
面向模式的軟體架構系列叢書被公認為程式設計師必讀經典。本書是該系列叢書的第1 卷,涵蓋模式系統的方方面面。本書分8 章,第1 章系統介紹模式的概念,討論描述模式的原則;第2 ~ 4 章講解模式編目,分別闡述了架構模式、設計模式和成例;第5 章揭示如何將模式組織成模式系統及其重要性;第6 章探討將模式融入軟體架構的方法;第7 章概述模式的歷史、相關著作及模式界;第8 章展望模式未來的發展方向。本書最後還給出了表示法、術語表、參考文獻和索引,方便讀者閱讀及進階。
本書適合軟體架構師、設計師和開發人員閱讀,對計算機專業的學生也大有裨益。
作者介紹
作者簡介:Frank Buschmann
德國慕尼黑西門子技術公司首席工程師,Wiley軟體設計模式系列圖書主編。他的研究領域包括對象技術、軟體架構、產品線、模型驅動軟體開發和模式。曾是ANSI C++標準化委員會X3J16的成員,於1996年發起了首屆EuroPLoP會議。
Regine Meunier
德國慕尼黑西門子技術公司軟體工程師、科研人員,面向方面的軟體開發項目帶頭人。此外,Regine還精通軟體模式和面向服務的架構。
Hans Rohnert
德國慕尼黑西門子技術公司通信設備業務部門高級軟體工程師。主要研究方向是分析大有前途的軟體技術,並將它們套用到新產品中(如下一代移動手機)。
Peter Sommerlad
瑞士東部高等專業學院軟體研究院院長。Security Patterns等暢銷書作者。他的工作目標是通過遞減開發讓軟體更簡單,他的研究團隊創建了基於Eclipse的IDE工具,主要在C++和Scala中使用。
Michael Stal
德國慕尼黑西門子技術公司資深軟體工程師,在編譯器和計算機圖形軟體開發方面經驗豐富。自1992年開始,Michael一直致力於使用Sockets、CORBA、COM和Java開發並發和面向對象的分散式系統。
作品目錄
目 錄第1章 模式1
1.1 模式是什麼1
1.2 模式之所以為模式5
1.3 模式類型7
1.3.1 架構模式8
1.3.2 設計模式8
1.3.3 成例9
1.3.4 模式分類在軟體開發中的用途10
1.4 模式之間的關係1
1.5 模式的描述13
1.6 模式與軟體架構5
1.6.1 作為思維構件的模式15
1.6.2 打造異質架構16
1.6.3 模式與方法16
1.6.4 實現模式6
1.7 總結17
第2章 架構模式18
2.1 導言18
2.2 從混亂到有序19
2.2.1 Layers 模式21
2.2.2 Pipes and Filters 模式34
2.2.3 Blackboard 模式46
2.3 分散式系統62
2.4 互動式系統78
2.4.1 Model-View-Controller 模式79
2.4.2 Presentation-Abstraction-Control 模式93
2.5 可適應系統109
2.5.1 Microkernel 模式110
2.5.2 Reflection 模式124
第3章 設計模式143
3.1 導言143
3.2 結構分解模式144
3.3 工作組織模式157
3.4 訪問控制169
3.5 管理模式178
3.5.1 Command Processor 模式179
3.5.2 View Handler 模式188
3.6 通信模式198
3.6.1 Forwarder-Receiver 模式199
3.6.2 Client-Dispatcher-Server 模式209
3.6.3 Publisher-Subscriber 模式219
第4章 成例223
4.1 導言223
4.2 成例的用途224
4.3 成例與風格224
4.4 到哪裡去尋找成例226
第5章 模式系統233
5.1 模式系統是什麼233
5.2 模式分類235
5.2.1 模式類別235
5.2.2 問題類別235
5.2.3 分類方案236
5.2.4 比較237
5.3 選擇模式238
5.4 作為實現指南的模式系統239
5.5 模式系統的演化241
5.5.1 模式描述的演化242
5.5.2 創意寫作工坊式審閱242
5.5.3 模式發掘243
5.5.4 添加新模式243
5.5.5 刪除過時的模式244
5.5.6 擴展組織方案244
5.6 總結246
第6章 模式與軟體架構247
6.1 導言247
6.1.1 軟體架構247
6.1.2 組件248
6.1.3 關係249
6.1.4 視圖250
6.1.5 功能特徵和非功能特徵251
6.1.6 軟體設計251
6.1.7 小結252
6.2 軟體架構中的模式252
6.2.1 開發方法253
6.2.2 開發流程253
6.2.3 架構風格254
6.2.4 框架255
6.3 軟體架構支持技術256
6.3.1 抽象256
6.3.2 封裝257
6.3.3 信息隱藏257
6.3.4 模組化257
6.3.5 分離關注點257
6.3.6 耦合與內聚258
6.3.7 充分、完整、簡單258
6.3.8 策略與實現分離258
6.3.9 接口與實現分離259
6.3.10 單個引用點259
6.3.11 分而治之259
6.3.12 小結259
6.4 軟體架構的非功能特徵260
6.4.1 可修改性260
6.4.2 互操作性261
6.4.3 效率262
6.4.4 可靠性262
6.4.5 可測試性262
6.4.6 可重用性263
6.5 總結264
第7章 模式界265
7.1 起源265
7.2 領軍人物及其成果266
7.3 模式界267
第8章 模式的發展方向269
8.1 模式挖掘269
8.1.1 軟體架構模式269
8.1.2 組織模式270
8.1.3 領域特定的模式270
8.1.4 模式語言271
8.2 模式的組織和模式索引271
8.3 方法和工具272
8.4 算法、數據結構和模式273
8.5 模式的規範化273
8.6 結語274
表示法275
術語表279
參考文獻284
索引296