C++ 設計模式

李陽陽

  • 出版商: 人民郵電
  • 出版日期: 2024-08-01
  • 售價: $479
  • 貴賓價: 9.5$455
  • 語言: 簡體中文
  • 頁數: 257
  • ISBN: 7115603111
  • ISBN-13: 9787115603111
  • 相關分類: C++ 程式語言Design Pattern
  • 立即出貨 (庫存 < 3)

  • C++ 設計模式-preview-1
  • C++ 設計模式-preview-2
C++ 設計模式-preview-1

買這商品的人也買了...

商品描述

本書通過淺顯易懂的例子來講解設計模式的知識:首先,介紹設計模式的概念,在什麽情況、什麽場合下要用哪一種設計模式;然後,通過每一種設計模式的UML類圖,明確各個小故事里講解的設計模式中的變量之間的關系,幫助讀者理解代碼實現的步驟;最後,講解設計模式之間的聯系和區別。

本書案例豐富,實用性強,適合有一定C++基礎的讀者、求職的本科生或研究生、需要學習架構和重構架構知識的程序員閱讀,也可以作為大專院校相關專業師生的參考書和培訓學校的教材。

作者簡介

李阳阳,一线互联网软件工程师,擅长数据结构、设计模式,现负责自动驾驶系统架构开发与设计,曾负责实现多套大型的、兼容性强的、可扩展的软件架构,此架构提高了团队整体开发效率。喜欢读书与写作,热爱生活、摄影和厨艺。

目錄大綱

 

目 錄

第 1章 理論基礎 1

1.1 類方法 1

1.2 類間關系 2

1.2.1 接口實現關系 2

1.2.2 繼承泛化關系 3

1.2.3 不可分離組合關系 4

1.2.4 可分離聚合關系 4

1.2.5 關聯關系 5

1.2.6 依賴關系 6

1.3 EIT造型 7

1.3.1 EIT是什麽 7

1.3.2 程序應用 7

1.3.3 優化設計 8

1.4 組合設計模式 11

1.5 總結 14

思而不罔 14

溫故而知新 14

第 2章 六大設計原則 15

2.1 開閉原則—服裝店打折 15

2.1.1 多擴展、少修改 15

2.1.2 兼容性的考量 16

2.1.3 季節變換後的服裝銷售 16

2.1.4 服裝打折中的開閉原則 19

2.1.5 小結 23

思而不罔 23

溫故而知新 23

2.2 里氏替換原則—企鵝不是鵝 24

2.2.1 基類的替身 24

2.2.2 抽象的妙處 24

2.2.3 企鵝不是鵝 25

2.2.4 企鵝不是鵝中的里氏替換原則 26

2.2.5 小結 28

思而不罔 28

溫故而知新 28

2.3 依賴倒置原則—切換電視台 29

2.3.1 面向接口編程 29

2.3.2 依賴抽象而非細節 29

2.3.3 電視台之間的輕松切換 29

2.3.4 切換電視臺中的依賴倒置原則 31

2.3.5 小結 33

思而不罔 34

溫故而知新 34

2.4 單一職責原則—爸媽分工乾活 34

2.4.1 一個類一個職責 34

2.4.2 關聯性方法的聚類 35

2.4.3 分工協作中的子女教育 35

2.4.4 輔導作業中的單一職責原則 36

2.4.5 小結 39

思而不罔 39

溫故而知新 39

2.5 接口隔離原則—細分圖書管理 39

2.5.1 獨立成類 39

2.5.2 接口去冗餘 40

2.5.3 圖書管理的標準流程 40

2.5.4 圖書管理系統中的接口隔離原則 42

2.5.5 小結 44

思而不罔 44

溫故而知新 44

2.6 迪米特法則—介紹人說對象 45

2.6.1 巧用第三者 45

2.6.2 類間少瞭解 45

2.6.3 相親還需介紹人幫助 45

2.6.4 說媒中的迪米特法則 47

2.6.5 小結 48

思而不罔 48

溫故而知新 49

2.7 總結 49

第3章 六大創建型設計模式 50

3.1 單例模式—只有一個班長 50

3.1.1 全局唯一 50

3.1.2 角色扮演 51

3.1.3 有利有弊 51

3.1.4 只有一個班長實際問題 52

3.1.5 用單例模式解決問題 53

3.1.6 小結 55

思而不罔 55

溫故而知新 55

3.2 原型模式—證書製作 55

3.2.1 復制的力量 55

3.2.2 角色扮演 56

3.2.3 有利有弊 56

3.2.4 證書製作實際問題 57

3.2.5 用原型模式解決問題 58

3.2.6 小結 60

思而不罔 60

溫故而知新 61

3.3 工廠方法模式—成立事業部 61

3.3.1 一對一的關系 61

3.3.2 角色扮演 61

3.3.3 有利有弊 62

3.3.4 成立事業部實際問題 63

3.3.5 用工廠方法模式解決問題 64

3.3.6 小結 66

思而不罔 66

溫故而知新 66

3.4 抽象工廠模式—產品多元化 66

3.4.1 一對多的關系 67

3.4.2 角色扮演 67

3.4.3 有利有弊 68

3.4.4 產品多元化實際問題 68

3.4.5 用抽象工廠模式解決問題 70

3.4.6 小結 72

思而不罔 73

溫故而知新 73

3.5 簡單工廠模式—多款式手機 73

3.5.1 用形參去抽象 73

3.5.2 角色扮演 73

3.5.3 有利有弊 74

3.5.4 多款式手機實際問題 74

3.5.5 用簡單工廠模式解決問題 76

3.5.6 小結 78

思而不罔 78

溫故而知新 78

3.6 建造者模式—組裝人偶玩具 79

3.6.1 構造與表示分離 79

3.6.2 角色扮演 79

3.6.3 有利有弊 80

3.6.4 組裝人偶玩具實際問題 80

3.6.5 用建造者模式解決問題 82

3.6.6 小結 85

思而不罔 85

溫故而知新 85

3.7 總結 85

第4章 七大結構型設計模式 87

4.1 適配器模式—電源適配器 87

4.1.1 第三方橋梁 88

4.1.2 角色扮演 88

4.1.3 有利有弊 89

4.1.4 電源適配器實際問題 89

4.1.5 用適配器模式解決問題 91

4.1.6 小結 92

思而不罔 93

溫故而知新 93

4.2 代理模式—房屋中介 93

4.2.1 中介的作用 93

4.2.2 角色扮演 94

4.2.3 有利有弊 94

4.2.4 房屋中介實際問題 95

4.2.5 用代理模式解決問題 96

4.2.6 小結 97

思而不罔 97

溫故而知新 97

4.3 橋接模式—隨心所欲繪圖 98

4.3.1 繼承變聚合 98

4.3.2 角色扮演 98

4.3.3 有利有弊 99

4.3.4 隨心所欲繪圖實際問題 99

4.3.5 用橋接模式解決問題 101

4.3.6 小結 103

思而不罔 103

溫故而知新 103

4.4 裝飾模式—火鍋加配菜 104

4.4.1 添加裝飾類 104

4.4.2 角色扮演 104

4.4.3 有利有弊 106

4.4.4 火鍋加配菜實際問題 106

4.4.5 用裝飾模式解決問題 108

4.4.6 小結 110

思而不罔 110

溫故而知新 110

4.5 外觀模式—買房手續多 111

4.5.1 接口的二次封裝 111

4.5.2 角色扮演 112

4.5.3 有利有弊 112

4.5.4 買房手續多實際問題 113

4.5.5 用外觀模式解決問題 114

4.5.6 小結 116

思而不罔 116

溫故而知新 117

4.6 享元模式—統計網絡終端數 117

4.6.1 創建對象池 117

4.6.2 角色扮演 118

4.6.3 有利有弊 118

4.6.4 統計網絡終端數實際問題 118

4.6.5 用享元模式解決問題 120

4.6.6 小結 123

思而不罔 123

溫故而知新 123

4.7 組合模式—總公司架構 123

4.7.1 樹形結構 124

4.7.2 角色扮演 124

4.7.3 有利有弊 125

4.7.4 總公司架構實際問題 126

4.7.5 用組合模式解決問題 127

4.7.6 小結 131

思而不罔 131

溫故而知新 131

4.8 總結 131

第5章 十大行為型設計模式 133

5.1 模板方法模式—銀行辦業務 134

5.1.1 流程歸一化 134

5.1.2 角色扮演 134

5.1.3 有利有弊 135

5.1.4 銀行辦業務實際問題 135

5.1.5 用模板方法模式解決問題 137

5.1.6 小結 139

思而不罔 139

溫故而知新 139

5.2 解釋器模式—校園門禁卡 139

5.2.1 語言翻譯機 139

5.2.2 角色扮演 140

5.2.3 有利有弊 141

5.2.4 校園門禁卡實際問題 142

5.2.5 用解釋器模式解決問題 144

5.2.6 小結 147

思而不罔 147

溫故而知新 147

5.3 策略模式—旅行方式多 147

5.3.1 多分支判斷 148

5.3.2 角色扮演 148

5.3.3 有利有弊 149

5.3.4 旅行方式多實際問題 149

5.3.5 用策略模式解決問題 151

5.3.6 小結 153

思而不罔 153

溫故而知新 153

5.4 命令模式—顧客點菜 154

5.4.1 請求對象化 154

5.4.2 角色扮演 154

5.4.3 有利有弊 155

5.4.4 顧客點菜實際問題 156

5.4.5 用命令模式解決問題 158

5.4.6 小結 160

思而不罔 161

溫故而知新 161

5.5 責任鏈模式—審批流程多 161

5.5.1 職責串聯 161

5.5.2 角色扮演 162

5.5.3 有利有弊 163

5.5.4 審批流程多實際問題 163

5.5.5 用責任鏈模式解決問題 165

5.5.6 小結 167

思而不罔 167

溫故而知新 168

5.6 狀態模式—我的一整天 168

5.6.1 邏輯變對象 168

5.6.2 角色扮演 169

5.6.3 有利有弊 170

5.6.4 我的一整天實際問題 170

5.6.5 用狀態模式解決問題 172

5.6.6 小結 175

思而不罔 175

溫故而知新 175

5.7 觀察者模式—“歡迎新同事” 175

5.7.1 觀察者模式運作方式—

一呼百應 175

5.7.2 角色扮演 176

5.7.3 有利有弊 177

5.7.4 “歡迎新同事”問題 178

5.7.5 用觀察者模式解決問題 180

5.7.6 小結 182

思而不罔 182

溫故而知新 182

5.8 中介者模式—驛站取快遞 183

5.8.1 交互的替身 183

5.8.2 角色扮演 184

5.8.3 有利有弊 185

5.8.4 驛站取快遞實際問題 185

5.8.5 用中介者模式解決問題 187

5.8.6 小結 190

思而不罔 190

溫故而知新 190

5.9 訪問者模式—手機耗電快 190

5.9.1 固定結構下的技巧 191

5.9.2 角色扮演 191

5.9.3 有利有弊 192

5.9.4 手機耗電快實際問題 193

5.9.5 用訪問者模式解決問題 195

5.9.6 小結 199

思而不罔 199

溫故而知新 199

5.10 備忘錄模式—面試的公司多 199

5.10.1 好記性不如爛筆頭 200

5.10.2 角色扮演 200

5.10.3 有利有弊 201

5.10.4 面試的公司多實際問題 202

5.10.5 用備忘錄模式解決問題 204

5.10.6 小結 207

思而不罔 207

溫故而知新 208

5.11 總結 208

第6章 設計模式三大綜合案例 210

6.1 封閉開發中的成果 210

6.1.1 聊天登錄系統 210

6.1.2 系統拆解分析 211

6.1.3 系統整合設計 213

6.1.4 系統編碼實現 215

6.1.5 思考 223

6.1.6 小結 223

6.2 產品上線後的創業故事 223

6.2.1 手機產業鏈 223

6.2.2 產業鏈拆解 224

6.2.3 產業鏈組合 229

6.2.4 產業鏈編程 231

6.2.5 思考 241

6.2.6 小結 241

6.3 單打獨鬥的艱辛 242

6.3.1 公司起步 242

6.3.2 流程化拆解 242

6.3.3 流程化組合 245

6.3.4 流程化編程 248

6.3.5 思考 254

6.3.6 小結 255

6.4 總結 255

參考文獻 257