打好基礎、學對方法、深入技巧、應用實戰!
本書是自我進修、學校用書的最好教材!
需求模型→領域模型→設計模型→實作模型
逐步拆解物件導向開發的每一個步驟,使你不再迷惘!
不要讓「物件導向」成為空泛而抽象的口號,
本書教你如何從頭開始逐一落實物件導向!
讓你的程式設計更有條理、更加快速、更能夠適應變化!
●第一部分 深入闡述物件導向的各種概念,使讀者「知其然,更知其所以然」。
●第二部分 介紹讀者如何在軟體發展過程中,完整落實物件導向的相關技術。
●第三部分 探討「內聚耦合」、「設計模式」、「設計原則」、「UML」等常見技術。
●第四部分 引用實際案例,使讀者更加體會如何在實務上落實物件導向方法。
本書系統性地講解物件導向的相關內容,包括物件導向的基本概念、物件導向開發的流程、物件導向的各種技巧,以及如何在實際專案中應用物件導向技術進行設計與開發。在講解相關知識或技術的時候,除了從「是什麼」這個角度進行介紹,更加著重於從「為什麼」和「如何用」這兩個角度進行剖析,進而幫助讀者在實踐中正確地應用物件導向的相關技術和技巧。
本書內容涵蓋物件導向技術的各個面向,由淺入深,不同程度的讀者都能從書中獲益:
●如果你是剛入門的軟體工程師,則書中通俗易懂的概念和方法、完整的物件導向開發流程,能夠幫助你快速掌握物件導向開發的基本技巧,從容不迫地完成開發任務。
●如果你已經初步掌握物件導向開發的基本方法和步驟,則書中詳細闡述的物件導向技術的各種技巧,例如SOLID原則、設計模式、UML等,能夠幫助你快速提升自己的設計和開發功力。
●如果你有了一定經驗,能夠熟練應用各種物件導向技術和技巧,卻沒有深入探討,則書中對物件導向另闢蹊徑的解讀,能夠讓你「知其然,並知其所以然」,進而在晉升或者面試的時候游刃有餘。
作者簡介:
李運華
阿里前資深技術專家(P9),15年軟體設計開發經驗,曾就職於華為、UCWEB、阿里巴巴、螞蟻金服,擔任架構設計、架構重構、技術團隊管理、技術培訓等職責。專精於開源技術、系統分析、架構設計,對網際網路技術的特點和發展趨勢有較深入的研究和理解,先後負責過阿里遊戲異地多活、飛鴿訊息佇列、交易平台解耦、螞蟻國際澳門錢包等專案,對於高性能、高可用、業務架構、系統解耦等都有豐富的經驗,著有《物件導向葵花寶典:觀念、技巧與實踐》、《從零開始學架構》兩本書籍,同時為極客時間專欄《從0開始學架構》的作者。
目錄
第一部分 物件導向基礎
Chapter01 物件導向概述
1.1 程式設計概念的發展
1.2 物件導向語言的發展歷史
1.3 程序導向
1.4 物件導向
1.5 為什麼要物件導向
1.6 物件導向的應用範圍
1.7 物件導向的迷思
1.7.1 物件導向會導致效能下降?
1.7.2 物件導向語言 = 物件導向程式設計?
1.8 小結
Chapter02 物件導向理論
2.1 類別
2.2 物件
2.3 介面
2.4 抽象類別
2.5 抽象
2.6 三大核心特徵
2.6.1 封裝
2.6.2 繼承
2.6.3 多型
2.7 小結
第二部分 物件導向方法
Chapter03 物件導向分析和設計全流程概述
Chapter04 需求模型
4.1 需求詳解
4.2 需求的重要性
4.3 需求分析
4.3.1 需求分析的目的
4.3.2 需求分析的方法
4.4 使用案例方法
4.4.1 使用案例的具體寫法
4.4.2 要畫圖嗎
4.5 功能
4.6 使用案例圖的陷阱
4.7 SSD
4.8 常見問題解答
4.9 小結
Chapter05 領域模型
5.1 領域建模三字經
5.2 找名詞
5.3 加屬性
5.4 連關係
5.5 常見問題解答
5.6 小結
Chapter06 設計模型
6.1 設計模型總覽
6.2 類別模型
6.2.1 第一步(依樣畫葫蘆):領域類別映射
6.2.2 第二步(精雕細琢):應用設計原則和設計模式
6.2.3 第三步(照本宣科):拆分輔助類別
6.3 動態模型
6.3.1 模型分類
6.3.2 建模實踐
6.3.3 建模技巧
6.4 小結
Chapter07 實作模型
7.1 程式語言的差異性
7.2 C++
7.2.1 類別
7.2.2 存取控制
7.2.3 繼承
7.2.4 多型
7.2.5 抽象類別
7.2.6 介面
7.3 Java
7.3.1 類別
7.3.2 存取控制
7.3.3 繼承
7.3.4 多型
7.3.5 抽象類別
7.3.6 介面
7.4 小結
第三部分 物件導向技巧
Chapter08 設計原則
8.1 內聚
8.1.1 內聚究竟是什麼
8.1.2 內聚的分類
8.2 耦合
8.2.1 耦合究竟是什麼
8.2.2 耦合的分類
8.3 高內聚低耦合
8.4 類別設計原則
8.4.1 SRP
8.4.2 OCP
8.4.3 LSP
8.4.4 ISP
8.4.5 DIP
8.4.6 如何應用設計原則
8.4.7 NOP
8.5 小結
Chapter09 設計模式
9.1 設計模式簡介
9.2 設計模式只是一把鐵錘
9.3 設計模式之道
9.3.1 知易行難—設計模式應用的問題
9.3.2 撥雲見日—尋找設計模式之道
9.3.3 庖丁解牛—解析設計模式之道
9.3.4 舉一反三—活學活用設計模式之道
9.4 原則 vs 模式
9.5 模式詳解
9.5.1 Prototype(原型)模式
9.5.2 Decorator(裝飾)模式
9.5.3 Facade(外觀)模式
9.5.4 Observer(觀察者)模式
9.6 小結
Chapter10 UML
10.1 UML 簡介
10.2 UML 只是語言
10.3 UML 應用
10.4 需求分析階段
10.4.1 使用案例圖
10.4.2 使用案例圖的關係
10.5 設計階段
10.5.1 類別圖
10.5.2 類別關係圖
10.5.3 動態圖
10.5.4 結構圖
10.6 部署階段
10.7 小結
第四部分 物件導向實戰
Chapter11 實戰案例:朋友圈「踩」
11.1 需求模型
11.1.1 5W 分析
11.1.2 1H 分析
11.3 設計模型
11.3.1 系統設計
11.3.2 詳細設計
11.4 程式碼模型
11.5 小結
Chapter12 實戰案例:ZooKeeper 原始碼分析
12.1 ZooKeeper 介紹
12.2 需求模型
12.3 領域模型
12.4 設計模型
12.5 程式碼模型
12.6 小結
第一部分 物件導向基礎
Chapter01 物件導向概述
1.1 程式設計概念的發展
1.2 物件導向語言的發展歷史
1.3 程序導向
1.4 物件導向
1.5 為什麼要物件導向
1.6 物件導向的應用範圍
1.7 物件導向的迷思
1.7.1 物件導向會導致效能下降?
1.7.2 物件導向語言 = 物件導向程式設計?
1.8 小結
Chapter02 物件導向理論
2.1 類別
2.2 物件
2.3 介面
2.4 抽象類別
2.5 抽象
2.6 三大核心特徵
2.6.1 封裝
2.6.2 繼承
2.6.3 多型
2.7 小結
第二部分 物件導向方法
Chapter03 物件導向分析和設計全流程概述
Chapter04 需求模型
4.1 需求詳解
4.2 需...