作 者:(美)科瑞福斯凱 著 楊光,劉基誠 譯
定 價:79
出 版 社:人民郵電出版社
出版日期:2013年01月01日
頁 數:320
裝 幀:平裝
ISBN:9787115297259
講述重構與設計模式兩大熱門技術,將兩者有機結合,極 具實戰價值業界專家學習和教授重構與模式親身經歷的結晶《設計模式》作者Erich Gamma、Ralph Johnson和《重構》作者Martin Fowler聯合推薦
●第1章本書的寫作緣由1
1.1過度設計1
1.2模式萬靈丹2
1.3設計不足2
1.4測試驅動開發和持續重構3
1.5重構與模式5
1.6演進式設計6
第2章重構7
2.1何謂重構7
2.2重構的動機8
2.3眾目睽睽9
2.4可讀性好的代碼10
2.5保持清晰11
2.6循序漸進11
2.7設計欠賬12
2.8演變出新的架構13
2.9復合重構與測試驅動的重構13
2.10復合重構的優點15
2.11重構工具15
第3章模式17
3.1何謂模式17
3.2模式痴迷18
3.3實現模式的方式不止一種20
3.4通過重構實現、趨向和去除模式22
3.5模式是否會使代碼更加復雜24
3.6模式知識25
3.7使用模式的預先設計26
第4章代碼壞味28
4.1重復代碼(Duplicated Code)30
4.2過長函數(Long Method)30
4.3條件邏輯太復雜(Conditional Complexity)31
4.4基本類型偏執(Primitive Obsession)32
4.5不恰當的暴露(Indecent Exposure)32
4.6解決方案蔓延(Solution Sprawl)33
4.7異曲同工的類(Alternative Classes with Different Interfaces)33
4.8冗贅類(Lazy Class)33
4.9過大的類(Large Class)33
4.10分支語句(Switch Statement)34
4.11組合爆炸(Combinatorial Explosion)34
4.12怪異解決方案(Oddball Solution)34
第5章模式導向的重構目錄36
5.1重構的格式36
5.2本目錄中引用的項目37
5.2.1XML Builder38
5.2.2HTML Parser38
5.2.3貸款風險計算程序39
5.3起點39
5.4學習順序39
第6章創建41
6.1用Creation Method替換構造函數43
6.1.1動機43
6.1.2做法45
6.1.3示例45
6.1.4變體49
6.2將創建知識搬移到Factory51
6.2.1動機51
6.2.2做法54
6.2.3示例55
6.3用Factory封裝類60
6.3.1動機60
6.3.2做法61
6.3.3示例62
6.3.4變體65
6.4用Factory Method引入多態創建67
6.4.1動機67
6.4.2做法68
6.4.3示例70
6.5用Builder封裝Composite74
6.5.1做法76
6.5.2示例77
6.5.3變體87
6.6內聯Singleton90
6.6.1動機90
6.6.2做法92
6.6.3示例93
第7章簡化96
7.1組合方法97
7.1.1動機97
7.1.2做法99
7.1.3示例99
7.2用Strategy替換條件邏輯102
7.2.1動機102
7.2.2做法104
7.2.3示例105
7.3將裝飾功能搬移到Decorator115
7.3.1動機115
7.3.2做法118
7.3.3示例119
7.4用State替換狀態改變條件語句133
7.4.1動機133
7.4.2做法134
7.4.3示例135
7.5用Composite替換隱含樹143
7.5.1動機143
7.5.2做法146
7.5.3示例147
7.6用Command替換條件調度程序155
7.6.1動機155
7.6.2做法157
7.6.3示例158
第8章泛化164
8.1形成Template Method165
8.1.1動機166
8.1.2做法167
8.1.3示例167
8.2提取Composite172
8.2.1動機172
8.2.2做法173
8.2.3示例174
8.3用Composite替換一/多之分180
8.3.1動機180
8.3.2做法182
8.3.3示例183
8.4用Observer替換硬編碼的通知190
8.4.1動機190
8.4.2做法191
8.4.3示例192
8.5通過Adapter統一接口199
8.5.1動機199
8.5.2做法200
8.5.3示例201
8.6提取Adapter208
8.6.1動機208
8.6.2做法210
8.6.3示例210
8.6.4變體216
8.7用Interpreter替換隱式語言217
8.7.1動機217
8.7.2做法219
8.7.3示例220
第9章保護230
9.1用類替換類型代碼231
9.1.1動機231
9.1.2做法233
9.1.3示例234
9.2用Singleton實例化240
9.2.1動機240
9.2.2做法241
9.2.3示例241
9.3引入Null Object244
9.3.1動機244
9.3.2做法246
9.3.3示例247
第10章聚集操作252
10.1將聚集操作搬移到Collecting Parameter253
10.1.1動機253
10.1.2做法254
10.1.3示例255
10.2將聚集操作搬移到Visitor259
10.2.1動機259
10.2.2做法263
10.2.3示例267
第11章實用重構274
11.1鏈構造函數275
11.1.1動機275
11.1.2做法276
11.1.3示例276
11.2統一接口278
11.2.1動機278
11.2.2做法279
11.2.3示例279
11.3提取參數280
11.3.1動機280
11.3.2做法280
11.3.3示例281
跋282
參考文獻283
索引286
《重構與模式(修訂版)》開創性地深入揭示了重構與模式這兩種軟件開發關鍵技術之間的聯繫,說明了通過重構實現模式改善既有的設計,往往優於在新的設計早期使用模式。《重構與模式(修訂版)》不僅展示了一種應用模式和重構的創新方法,而且有助於讀者透過實戰深入理解重構和模式。書中講述了27種重構方式。《重構與模式(修訂版)》適於面向對像軟件開發人員閱讀,也可作為高等學校計算機專業、軟件工程專業師生的參考讀物。