清華名師心血著作:設計模式藝術之道,軟件開發人員內功修煉手冊

前言

在過去多年的軟件開發和教學推廣工作中,我時常能夠聽到這樣的聲音:

抽象類和接口到底有什麼用?

繼承不好嗎?爲什麼有時候不用它來實現功能複用?

能不能在下次增加功能的時候不要修改源代碼?每次都改,太麻煩了。

有沒有一種方法能夠減少類的個數?這麼多類,太複雜了。

面向對象軟件的可重用性不是很好嗎?爲什麼我還是在不斷編寫相同的代碼?

我學過設計模式,也看了好幾本書,但實際開發時我還是不知道怎麼運用這些模式?

你是否也曾有過上述疑問或者類似的感慨?如果有的話,那麼本書將是你明智的選擇。本書將結合大量項目實例來逐個講解設計模式,講述如何通過設計模式來解決上述問題,讓讀者能夠快速提升自己的開發功力,真正理解和掌握每-一個設計模式,在軟件開發的內功修煉之道上邁出堅實的一步。設計模式是面向對象軟件開發的入門功夫,是前人經驗的積累,它爲構建可維護性和可複用性俱佳的軟件而誕生。

本書結構及內容

本書分爲4個部分,共26章:

第1部分:基礎知識,包含第1章和第2章,主要介紹與設計模式相關的基礎知識,包括設計模式概述,UML類圖、7個面向對象設計原則等內容,爲後續設計模式的學習奠定基礎。

第2部分:創建的藝術,包含第3~8章,介紹6種常用的創建型設計模式,分別是單例模式、簡單工廠模式、工廠方法模式、抽象工廠模式、原型模式和建造者模式。

第3部分:組合的藝術,包含第9~15章,介紹7種常用的結構性設計模式,分別是適配器模式.橋接模式、組合模式、裝飾模式.外觀模式.享元模式和代理模式。

第4部分:交互的藝術,包含第16~26章,介紹11種常用的行爲型設計模式,分別是職責鏈模式.命令模式、解釋器模式.迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、模板方法模式和訪問者模式。

想要獲取這份設計模式藝術之道,軟件開發人員內功修煉手冊的電子版文檔,添加微信即可獲取哦(msbjy2019)

每章的基本內容如下

第1部分,基礎知識

第1章:介紹設計模式的基本概念;

設計模式從何而來

設計模式是什麼-

設計模式有什麼用

個人觀點

第2章:介紹UML類圖與面向對象設計原則;

UML概述

類與類的UML圖示

類之間的關係

面向對象設計原則概述

單一職責原則

開閉原則

里氏代換原則

依賴倒轉原則

接口隔離原則

合成複用原則

迪米特法則

第二部分,創建的藝術一創建型模式

第3章:介紹如何確保系統中一個類只能有一個實例;

單例模式的動

單例模式概述

負載均衡器的設計

餓漢式單例與懶漢式單例的討論.

一種更好的單例實現方法

單例模式總結

第4章:介紹如何將對象的創建和對象的使用分離;

圖表庫的設計

簡單工廠模式概述

完整解決方案

方案的改進

創建對象與使用對象

簡單工廠模式的簡化

簡單工廠模式總結

第5章:介紹如何通過不同的工廠來創建不同類型的對象;

日誌記錄器的設計

工廠方法模式概述

完整解決方案

反射與配置文件

重載的工廠方法

工廠方法的隱藏

工廠方法模式總結

第6章:介紹如何設計一個能夠創建一系列產品對象的工廠;

界面皮膚庫的初始設計

產品等級結構與產品組

抽象工廠模式概述

完整解決方案

開閉原則的傾斜性

抽象工廠模式總結

第7章:介紹如何通過克隆來得到一個一模一樣的對象;

大同小異的工作週報

原型模式概述

完整解決方案

帶附件的週報

原型管理器的引入和實現

原型模式總結

第8章:介紹如何一步步創建一個包含多個組成部分的複雜對象

遊戲角色設計

建造者模式概述

完整解決方案

關於Director的進一步討論

建造者模式總結

第三部分,組合的藝術一結構型模式

第9章:介紹如何在不修改現有系統的前提下重用沒有源碼的第三方類庫

沒有源碼的算法庫

適配器模式概述

完整解決方案

類適配器模式

雙向適配器模式

缺省適配器模式

適配器模式總結

第10章:介紹如何避免在多層繼承結構中類的個數出現爆炸式增長

跨平臺圖像瀏覽系統.

橋接模式概述

完整解決方案

適配器模式與橋接模式的聯用

橋接模式總結

第11章:介紹如何使用面向對象的方式來處理軟件系統中的樹狀結構

設計殺毒軟件的框架結構

組合模式概述

完整解決方案

透明組合模式與安全組合模式

Sunny公司組織結構

組合模式總結

第12章:介紹如何不通過繼承的方式來擴展類的功能

圖形界面構件庫的設計

裝飾模式概述

完整解決方案

透明裝飾模式與半透明裝飾模式.

裝飾模式注意事項

裝飾模式總結

第13章:介紹如何爲複雜的系統提供一個統一的人口

文件加密模塊的設計

外觀模式概述

完整解決方案

抽象外觀類的引

外觀角色設計補充說明

外觀模式總結

第14章:介紹如何實現對象的多次複用以節省系統資源

圍棋棋子的設計

享元模式概述

完整解決方案

帶外部狀態的解決方案

單純享元模式和複合享元模式

關於享元模式的幾點補充

享元模式總結

第15章:介紹如何提供--種間接訪問機制來實現對象的遠程訪問或受限訪問

收費商務信息查詢系統的設計

完整解決方案

遠程代理

虛擬代理

Java動態代理

代理模式總結

第四部,分交互的藝術一行 爲型模式

第16章:介紹如何讓多個對象都有機會來處理同一個請求

採購單的分級審批.

職責鏈模式概

完整解決方案

純與不純的職責鏈模式

職責鏈模式總結

第17章:介紹如何將請求的發送者和請求接收者完全解耦

自定義功能鍵

命令模式概述

完整解決方案

命令隊列的實現

撤銷操作的實現

宏命令

命令模式總結

第18章:介紹如何自定義一個簡單的語言

機器人控制程

文法規則和抽象語法樹

解釋器模式概述

完整解決方案.

再談Context的作用

解釋器模式總結

第19章:介紹如何間接遍歷一個聚合對象中的元素

銷售管理系統中數據的遍歷

迭代器模式概述

完整解決方案

使用內部類實現迭代器

JDK內置迭代器

迭代器模式總結

第20章:介紹如何協調多個對象之間複雜的相互調用

客戶信息管理窗口的初始設計

中介者模式概述

完整解決方案

中介者與同事類的擴展

中介者模式總結

第21章:介紹如何在軟件中實現撤銷功能

可悔棋的中國象棋

備忘錄模式概述

完整解決方案

實現多次撤銷

再談備忘錄的封裝

備忘錄模式總結

第22章:介紹如何實現對象之間--對多的聯動

多人聯機對戰遊戲的設計

觀察者模式概述

完整解決方案

JDK對觀察者模式的支持

觀察者模式與Java事件處理

觀察者模式與MVC

觀察者模式總結

第23章:介紹如何設計和實現-一個具有多個狀態的對象

銀行系統中的賬戶類設計.

狀態模式概述

完整解決方案

共享狀態

使用環境類實現狀態轉換.

狀態模式總結

第24章:介紹如何在不修改現有代碼的前提下更換一種算法

電影票打折方案

戰略模式概述

完整解決方案

策略模式的兩個典型應用

戰略模式總結

第25章:介紹如何爲一個複雜算法的某些步驟提供多種實現方式

銀行利息計算模塊

模板方法模式概述

完整解決方案

鉤子方法的使用

模板方法模式總結

第26章:介紹如何操作一個包含多種類型對象的複雜結構

OA系統中員工數據彙總

訪問者模式概述

完整解決方案

訪問者模式與組合模式聯用

訪問者模式總結

想要獲取這份設計模式藝術之道,軟件開發人員內功修煉手冊的電子版文檔,添加微信即可獲取哦(msbjy2019)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章