讀者對象:適用于各個(gè)階段的開發(fā)者群體。剛剛涉足軟件開發(fā)領(lǐng)域的新人能夠透過大師的眼睛來看待編程, 了解編程的價(jià)值觀與原則; 具有豐富經(jīng)驗(yàn)的資深工程師則可以通過這些模式進(jìn)行反思, 探究成功實(shí)踐背后的意義
《軟件開發(fā)方法學(xué)精選系列:實(shí)現(xiàn)模式(修訂版)》作者將自己多年形成的編程習(xí)慣以及閱讀既有代碼的體驗(yàn)?zāi)毘闪司幊讨械膬r(jià)值觀、原則和77種實(shí)現(xiàn)模式。
溝通、簡單和靈活的價(jià)值觀應(yīng)當(dāng)被所有開發(fā)人員所銘記。局部影響、最小化重復(fù)、將邏輯與數(shù)據(jù)捆綁等原則同樣是通用性的指導(dǎo)思想,比價(jià)值觀更貼近編程場景,在價(jià)值觀和模式之間搭建了橋梁。在77種實(shí)現(xiàn)模式中,每一種模式都覆蓋了編寫簡潔、清晰、易擴(kuò)展、易維護(hù)的代碼這一原則的某個(gè)方面。它們?yōu)槿粘5木幊烫峁┝素S富翔實(shí)的參考依據(jù),并告訴大家這些代碼如何為降低溝通成本和提高有效產(chǎn)出提供保障。
《軟件開發(fā)方法學(xué)精選系列:實(shí)現(xiàn)模式(修訂版)》適用于各個(gè)階段的開發(fā)者群體。剛剛涉足軟件開發(fā)領(lǐng)域的新人能夠透過大師的眼睛來看待編程,了解編程的價(jià)值觀與原則;具有豐富經(jīng)驗(yàn)的資深工程師則可以通過這些模式進(jìn)行反思,探究成功實(shí)踐背后的意義。把價(jià)值觀、原則和開發(fā)實(shí)踐結(jié)合之后,日常開發(fā)工作便會(huì)以嶄新而迷人的形式呈現(xiàn)在我們面前。
第1章 引言
1.1 章節(jié)概覽
1.2 那么,現(xiàn)在……
第2章 模式
第3章 一種編程理論
3.1 價(jià)值觀
3.1.1 溝通
3.1.2 簡單
3.1.3 靈活
3.2 原則
3.2.1 局部化影響
3.2.2 最小化重復(fù)
3.2.3 將邏輯與數(shù)據(jù)捆綁
3.2.4 對稱性
3.2.5 聲明式表達(dá)
3.2.6 變化率
3.3 小結(jié)
第4章 動(dòng)機(jī)
第5章 類
5.1 類
5.2 簡單的超類名
5.3 限定性的子類名
5.4 抽象接口
5.5 interface
5.6 抽象類
5.7 有版本的interface
5.8 值對象
5.9 特化
5.10 子類
5.11 實(shí)現(xiàn)器
5.12 內(nèi)部類
5.13 實(shí)例特有的行為
5.14 條件語句
5.15 委派
5.16 可插拔的選擇器
5.17 匿名內(nèi)部類
5.18 庫類
5.19 小結(jié)
第6章 狀態(tài)
6.1 狀態(tài)
6.2 訪問
6.3 直接訪問
6.4 間接訪問
6.5 通用狀態(tài)
6.6 可變狀態(tài)
6.7 外生狀態(tài)
6.8 變量
6.9 局部變量
6.10 字段
6.11 參數(shù)
6.12 收集參數(shù)
6.13 可選參數(shù)
6.14 變長參數(shù)
6.15 參數(shù)對象
6.16 常量
6.17 按角色命名
6.18 聲明時(shí)的類型
6.19 初始化
6.20 及早初始化
6.21 延遲初始化
6.22 小結(jié)
第7章 行為
7.1 控制流
7.2 主體流
7.3 消息
7.4 選擇性消息
7.5 雙重分發(fā)
7.6 分解性(序列性)消息
7.7 反置性消息
7.8 邀請性消息
7.9 解釋性消息
7.10 異常流
7.11 衛(wèi)述句
7.12 異常
7.13 已檢查異常
7.14 異常傳播
7.15 小結(jié)
第8章 方法
8.1 組合方法
8.2 揭示意圖的名稱
8.3 方法可見性
8.4 方法對象
8.5 覆蓋方法
8.6 重載方法
8.7 方法返回類型
8.8 方法注釋
8.9 助手方法
8.10 調(diào)試輸出方法
8.11 轉(zhuǎn)換
8.12 轉(zhuǎn)換方法
8.13 轉(zhuǎn)換構(gòu)造器
8.14 創(chuàng)建
8.15 完整的構(gòu)造器
8.16 工廠方法
8.17 內(nèi)部工廠
8.18 容器訪問器方法
8.19 布爾值設(shè)置方法
8.20 查詢方法
8.21 相等性判斷方法
8.22 取值方法
8.23 設(shè)置方法
8.24 安全復(fù)制
8.25 小結(jié)
第9章 容器
9.1 隱喻
9.2 要點(diǎn)
9.3 接口
9.3.1 Array
9.3.2 Iterable
9.3.3 Collection
9.3.4 List國
9.3.5 Set國
9.3.6 SortedSet國
9.3.7 Map國
9.4 實(shí)現(xiàn)
9.4.1 Collection國
9.4.2 List國
9.4.3 Set國
9.4.4 Map國
9.5 Collections
9.5.1 查詢
9.5.2 排序
9.5.3 不可修改的容器
9.5.4 單元素容器
9.5.5 空容器
9.6 繼承容器
9.7 小結(jié)
第10章 改進(jìn)框架
10.1 修改框架而不修改應(yīng)用
10.2 不兼容的更新
10.3 鼓勵(lì)可兼容的變化
10.3.1 程序庫類
10.3.2 對象
10.4 小結(jié)
附錄A 性能度量
A.1 示例
A.2 API
A.3 實(shí)現(xiàn)
A.4 MethodTimer
A.5 沖抵額外開銷
A.6 測試
A.6.1 容器的比較
A.6.2 ArrayList和LinkedList的比較
A.6.3 Set之間的比較
A.6.4 Map之間的比較
A.7 小結(jié)
參考書目