-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
12/13 新書到! 10/8 新書到! 10/1 新書到! 9/24 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

模式——工程化實現及擴展(設計模式C#版)

( 簡體 字)
作者:王翔,孫遜類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社模式——工程化實現及擴展(設計模式C#版) 3dWoo書號: 32274
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:4/1/2012
頁數:408
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787121156397
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:


如同每個人都有其個性一樣,每種開發語言也有自己的個性。
項目中,我們固然可以機械地將一種語言的開發經驗套用到另一種語言,但效果不一定好,因為:
語言有自己的短處:用短處去實現不僅費時費力,結果也不理想。
語言有自己的長處:但為了沿用以前的經驗削足適履,沒有用到語言的精要,結果暴殄天物。
相信讀者也發現了,用一個語言寫Hello World是一回事,寫一個應用是一回事,寫好一個應用則完全是另一回事,這就是工程化代碼和“玩具”代碼的區別。教科書上的知識落實到工程上時不能按圖索驥,需要考慮開發語言和目標環境,設計模式也不例外。
也許讀者會覺得本書很多實現方式與《設計模式》介紹的內容不一致,但別忘了《設計模式》一書出版至今已近20年,其間無論是開發語言還是技術平臺已經“換了人間”,GOF 23個模式的思想不僅影響著我們,更影響著走在技術前沿的語言設計者、平臺設計者。他們也在工作中潛移默化地把模式思想融入自己的工作成果。作為用戶,如果我們“推卻”別人的盛情,所有事情都從“車輪”做起,多少有點不經濟。
作為本系列的C#設計模式分冊,我試圖用最C#的方式將自己對于設計模式的理解呈獻給讀者,而且實現上務求簡潔、直接。結構上,本書分為以下5個部分。
第一部分,預備知識
包括面向對象設計原則中“面向類”的部分、C#語言面向對象擴展特性,以及Java和C#語法特性的簡單對比。
第二部分,創建型模式
主要介紹如何創建對象,如何將客戶程序與創建過程的“變化”有效隔離。

第三部分,結構型模式
從靜態結構出發,分析導致類型結構相互依賴的原因,通過將靜態變化因素抽象、封裝為獨立對象的辦法,梳理對象結構關系。
第四部分,行為型模式
從動態機制出發,分析導致類型調用過程的依賴因素,通過將調用關系、調用過程抽象、封裝為獨立對象的辦法,削弱調用過程中的耦合關系。
第五部分,GOF綜合練習
為了便于讀者從整體上體會模式化設計思路和實現技巧,這部分通過一個綜合性的示例向讀者展示如何發現變化、抽象變化、應用模式并最終結合.NET Framework平臺特性加以實現的過程。
不管讀者之前對于模式是否有所嘗試,我希望讀者不妨瀏覽一下這章,畢竟模式思想轉化為模式設計思路,再轉化為模式應用技巧是一個漸進的過程,必須實際動手才會加深印象,然后才可能進一步開闊思路。本章示例設計上變化因素較多,需要三類模式的綜合運用,務求能起到拋磚引玉的效果。
感謝多年培養、幫助我的領導和同事們,多年富有挑戰、共同拼搏的項目經歷使我能夠完成這本書。
感謝我和我妻子共同的父母,您們一直給予我無私的關心和照顧,還教會我學會從生活中發掘無窮的技術靈感。
最后,感謝我摯愛的妻子,你給予我直面挑戰、戰勝挑戰的信心和力量。
不過,受到開發年限和項目經驗的限制,本書在很多地方難免會有疏漏和不足之處,希望能夠聽到讀者的批評和建議。

王翔
內容簡介:

設計模式不是一門適合空談的技術,它來自于開發人員的工程實踐又服務于工程實踐。
本書并不是一本面向入門者的讀物,因為它需要結合工程實踐介紹如何發現模式靈感、如何應用模式技術。不過作為一本介紹設計模式的書,它并不需要讀者對于龐大的.NET Framework有深入了解,因為擴展主要是結合C#語法完成的,配合書中的實例,相信讀者不僅能夠熟練應用設計模式技術,也能令自己的C#語言上一個臺階。
為了降低學習門檻,本書第一部分除了介紹面向對象設計原則外,還充實了一些C#語言的介紹,但這些內容并不是枯燥的講解,讀者可以在閱讀中通過一系列動手練習盡快吸收這些理論并將它們內化為自己的技能。本書最后一部分的“GOF綜合練習”把各種設計模式做了一次集中展示,目的是讓讀者把分散的模式知識融合在一起,能夠將書本知識真正用于改善一個“準”生產型模塊的實現。

目錄:

第一篇 預備知識——發掘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
序: