模式:工程化實現及擴展

《模式:工程化實現及擴展(設計模式C#版)》並不是一本面向入門者的讀物,因為它需要結合工程實踐介紹如何發現模式靈感、如何套用模式技術。不過作為一本介紹設計模式的書,它並不需要讀者對於龐大的.NET Framework有深入了解,因為擴展主要是結合C#語法完成的,配合書中的實例,相信讀者不僅能夠熟練套用設計模式技術,也能令自己的C#語言上一個台階。

基本介紹

  • 書名:模式:工程化實現及擴展
  • 出版社:電子工業出版社
  • 頁數:383頁
  • 開本:16
  • 定價:59.00
  • 作者:王翔 孫遜
  • 出版日期:2012年4月1日
  • 語種:簡體中文
  • ISBN:7121156393, 9787121156397
基本介紹,內容簡介,作者簡介,圖書目錄,

基本介紹

內容簡介

《模式:工程化實現及擴展(設計模式C#版)》第一部分除了介紹面向對象設計原則外,還充實了一些C#語言的介紹,但這些內容並不是枯燥的講解,讀者可以在閱讀中通過一系列動手練習儘快吸收這些理論並將它們內化為自己的技能。《模式:工程化實現及擴展(設計模式C#版)》最後一部分的“GOF綜合練習”把各種設計模式做了一次集中展示,目的是讓讀者把分散的模式知識融合在一起,能夠將書本知識真正用於改善一個“準”生產型模組的實現。

作者簡介

王翔,軟體架構師,主要從事.NET、XML、公鑰基礎設施的開發。專注於數據(尤其是XML信息)的生產、加工、交換、提煉等過程。最近參與了一系列有關套用密碼技術和PKI環境保護信息系統數據安全的項目。最喜歡數學,平常案頭總是擺一本數學練習題。閒暇時間喜歡寫作,通過發表多種技術文章與國內外同行交流各種數據套用經驗。項目間隙經常到各海濱城市徒步旅行、野外露營、出海航行、極限運動,這幾年烹飪也漸漸成為個人主要愛好。

圖書目錄

目 錄

第一篇 預備知識——發掘C#語言的面向對象設計潛力 1
第1章 面向對象設計原則 2
1.1 說明 3
1.2 單一職責原則(SRP) 4
1.3 里氏替換原則(LSP)和依賴倒置原則(DIP) 7
1.4 接口隔離原則(ISP) 8
1.5 迪米特法則(LoD:Law of Demeter、LKP) 9
1.6 開閉原則(OCP) 11
1.7 小結 15
1.8 自我檢驗 15
第2章 重新研讀C#語言 16
2.1 說明 17
2.2 C# 部分語法內容擴展 18
2.2.1 命名空間(Namespace) 18
2.2.2 簡潔的異步調用機制——委託(Delegate)和事件(Event) 21
2.2.3 考驗算法的抽象能力——泛型(Generics) 29
2.2.4 用貼“標籤”的方式擴展對象特性 35
2.2.5 可重載運算符(Overloadable Operators)與
轉換運算符(Conversion Operators) 38
2.3 面向外掛程式架構的配置系統設計 41
2.3.1 認識.NET Framework提供的主要配置實體類 42
2.3.2 小結 43
2.3.3 自我檢驗 43
2.4 依賴注入 44
2.4.1 背景介紹 44
2.4.2 示例情景 45
2.4.3 構造注入(Constructor) 47
2.4.4 設值注入(Setter) 48
2.4.5 接口注入 48
2.4.6 基於屬性的注入方式(Attributer) 50
2.4.7 小結 52
2.4.8 自我檢驗 53
2.5 連貫接口(Fluent Interface) 53
第3章 Java和C# 56
3.1 說明 57
3.2 枚舉(Enum) 57
3.3 泛型(Generics) 61
3.4 屬性和標註(Attribute and Annotation) 63
3.5 操作符重載和類型轉換重載 64
3.6 委託、事件、匿名方法 65
3.7 Lamada和LINQ 68
3.8 小結 73
第二篇 創建型模式——管理對象實例的構造過程 74
第4章 工廠&工廠方法模式 75
4.1 說明 76
4.2 簡單工廠 76
4.2.1 最簡單的工廠類 76
4.2.2 簡單工廠的局限性 79
4.3 經典回顧 79
4.4 解耦工廠類型與客戶程式 81
4.5 基於配置檔案的工廠 83
4.5.1 基於配置檔案解耦工廠接口和具體工廠類型 83
4.5.2 基於配置檔案解耦工廠類型和具體工作產品 84
4.6 典型工程化實現 86
4.7 小結 89
4.8 自我檢驗 90
第5章 單件模式 91
5.1 說明 92
5.2 經典回顧 93
5.3 執行緒安全的單件模式 96
5.4 細節決定成敗 98
5.5 細顆粒度的單件模式 99
5.5.1 背景討論 99
5.5.2 解決桌面套用中細顆粒度單件模式問題 100
5.5.3 解決Web套用中細顆粒度單件模式問題 101
5.6 分散式環境下的單件模式 102
5.7 單件模式的使用問題 105
5.8 小結 105
第6章 抽象工廠模式 106
6.1 說明 107
6.2 經典回顧 108
6.3 解決經典模式的硬傷 110
6.4 基於委託的生產外包 112
6.5 小結 114
第7章 創建者模式 116
7.1 說明 117
7.2 經典回顧 118
7.3 為Builder打個標籤 121
7.4 具有裝配/卸載能力的Builder 126
7.5 連貫接口形式的Builder 126
7.6 小結 130
7.7 自我檢驗 130
第8章 原型模式 131
8.1 說明 132
8.2 經典回顧 132
8.3 表面模仿還是深入模仿 136
8.3.1 概念 136
8.3.2 製作實現克隆的工具類型 137
8.3.3 簡單自定義複製過程 139
8.3.4 細顆粒度自定義複製過程 140
8.4 小結 142
8.5 自我檢驗 143
第三篇 結構型模式——組織靈活的對象體系 145
第9章 適配器模式 146
9.1 說明 147
9.2 經典回顧 148
9.3 類型轉換符實現適配 151
9.4 組適配器 152
9.5 用配置約定適配過程 154
9.6 面向數據的適配機制 156
9.7 小結 158
9.8 自我檢驗 158
第10章 橋模式 161
10.1 說明 162
10.2 經典回顧 163
10.3 分解複雜性的多級橋關係 166
10.4 看著“圖紙”造橋 171
10.5 具有約束關係的橋 174
10.6 小結 175
10.7 自我檢驗 176
第11章 組合模式 177
11.1 說明 178
11.2 經典回顧 179
11.3 用疊代器遍歷組合類型 183
11.4 適於XML信息的組合模式 185
11.5 分散式“部分—整體”環境 188
11.6 小結 188
11.7 自我檢驗 189
第12章 裝飾模式 190
12.1 說明 191
12.2 經典回顧 192
12.3 卸載裝飾 195
12.4 通過配置和創建者完成裝飾過程 196
12.5 把裝飾類型做成標籤 198
12.5.1 更“徹底”的屬性注入 198
12.5.2 方式1:採用.NET平台自帶的AOP機制實現 199
12.5.3 自定義代理攔截框架方式 202
12.5.4 進一步分析 205
12.6 小結 205
第13章 外觀模式 207
13.1 說明 208
13.2 經典回顧 208
13.3 平台、開發語言無關的抽象Facade接口——WSDL 211
13.4 小結 212
第14章 享元模式 214
14.1 說明 215
14.2 經典回顧 216
14.3 制訂共享計畫 219
14.4 通過委託和佇列實現異步享元 219
14.5 小結 220
第15章 代理模式 221
15.1 說明 222
15.2 經典回顧 222
15.3 遠程代理 224
15.4 小結 226
第四篇 行為型模式——算法、控制流的對象化操作 145
第16章 職責鏈模式 228
16.1 說明 229
16.2 經典回顧 229
16.3 非鍊表方式定義職責鏈 233
16.4 小結 237
第17章 模板方法模式 239
17.1 說明 240
17.2 經典回顧 241
17.3 方法的模板——委託 243
17.4 類和接口的模板——泛型 243
17.5 系統架構的模板——配置 244
17.6 小結 245
17.7 自我檢驗 245
第18章 解釋器模式 247
18.1 說明 248
18.2 經典回顧 249
18.3 採用正則表達式 252
18.4 採用字典 255
18.5 多級解釋器系統 258
18.6 用XSD解釋自定義業務語言 260
18.7 小結 261
18.8 自我檢驗 261
第19章 命令模式 262
19.1 說明 263
19.2 經典回顧 264
19.3 打包命令對象 266
19.4 異步命令操作 270
19.5 命令操作佇列 272
19.6 小結 273
19.7 自我檢驗 273
第20章 疊代器模式 276
20.1 說明 277
20.2 經典回顧 278
20.3 .NET內置的疊代器 279
20.4 小結 282
20.5 自我檢驗 282
第21章 中介者模式 283
21.1 說明 284
21.2 經典回顧 285
21.3 基於委託和事件的松耦合中介者 288
21.4 根據配置動態協調通知關係 290
21.5 小結 292
21.6 自我檢驗 293
第22章 備忘錄模式 294
22.1 說明 295
22.2 經典回顧 296
22.3 把備忘壓棧 300
22.4 備忘錄的序列化和持久化 302
22.4 小結 305
22.5 自我檢驗 305
第23章 觀察者模式 307
23.1 說明 308
23.2 經典回顧 310
23.3 .NET內置的觀察者機制——事件 313
23.4 具有觀察者機制的集合類型 315
23.5 面向服務接口的觀察者 316
23.6 小結 318
23.7 自我檢驗 318
第24章 狀態模式 320
24.1 說明 321
24.2 經典回顧 322
24.3 狀態的序列化和持久化 326
24.4 主動狀態對象 328
24.5 用WF完成更易於編排的狀態模式 329
24.6 小結 330
24.7 自我檢驗 330
第25章 策略模式 332
25.1 說明 333
25.2 經典回顧 334
25.3 策略模式與解釋器模式的協作 335
25.4 .NET自帶的策略接口 337
25.5 小結 338
第26章 訪問者模式 339
26.1 說明 340
26.2 經典回顧 340
26.3 藉助反射或Dynamic實現訪問者 343
26.4 用委託實現工程化的訪問者 346
26.5 小結 347
26.6 自我檢驗 347
第五篇 GOF綜合練習 227
第27章 GOF部分階段實踐 350
27.1 回顧GOF 351
27.2 需求的提出 351
27.3 第一輪技術分析 352
27.4 第二輪技術分析 354
27.5 第三輪技術分析 356
27.6 示例實現 357
27.7 驗證邏輯的有效性 369
27.8 小結 380
27.9 後記 381
附錄 Java和C#關鍵字對照表 382
  

相關詞條

熱門詞條

聯絡我們