TOP
0
0
即日起~7/10,三民書局週年慶暖身活動,簽到拿好禮!
重構與模式(簡體書)
滿額折

重構與模式(簡體書)

商品資訊

人民幣定價:55 元
定價
:NT$ 330 元
優惠價
87287
缺貨無法訂購
相關商品
商品簡介
作者簡介
目次

商品簡介

本書開創性地深入揭示了重構與模式這兩種軟件開發關鍵技術之間的聯系,說明了通過重構實現模式改善既有的設計,往往優于在新的設計早期使用模式。本書不僅展示了一種應用模式和重構的創新方法,而且有助于讀者透過實戰深入理解重構和模式。書中講述了27種重構方式。 本書適于面向對象軟件開發人員閱讀,也可作為高等學校計算機專業、軟件工程專業師生的參考讀物。

作者簡介

作者:(美國)Joshua Kerievsky 譯者:楊光 劉基城

目次

目 錄 第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.1 XML Builder 38 5.2.2 HTML Parser 38 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 將創建知識搬移到Factory 51 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封裝Composite 74 6.5.1 做法 76 6.5.2 示例 77 6.5.3 變體 87 6.6 內聯Singleton 90 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 將裝飾功能搬移到Decorator 115 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 Method 165 8.1.1 動機 166 8.1.2 做法 167 8.1.3 示例 167 8.2 提取Composite 172 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 提取Adapter 208 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 Object 244 9.3.1 動機 244 9.3.2 做法 246 9.3.3 示例 247 第10章 聚集操作 252 10.1 將聚集操作搬移到Collecting Parameter 253 10.1.1 動機 253 10.1.2 做法 254 10.1.3 示例 255 10.2 將聚集操作搬移到Visitor 259 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

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 287
缺貨無法訂購

暢銷榜

客服中心

收藏

會員專區