Java設計模式( 簡體 字) | |
作者:劉偉 | 類別:1. -> 程式設計 -> JAVA -> Java |
出版社:清華大學出版社 | 3dWoo書號: 48589 詢問書籍請說出此書號! 有庫存 NT售價: 350 元 |
出版日:3/1/2018 | |
頁數:411 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302488316 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章設計模式概述
1.1設計模式的誕生與發展 1.1.1模式的誕生與定義 1.1.2軟件模式概述 1.1.3設計模式的發展 1.2設計模式的定義與分類 1.2.1設計模式的定義 1.2.2設計模式的基本要素 1.2.3設計模式的分類 1.3GoF設計模式簡介 1.4設計模式的優點 1.5本章小結 1.6習題 第2章面向對象設計原則 2.1面向對象設計原則概述 2.2單一職責原則 2.3開閉原則 2.4里氏代換原則 2.5依賴倒轉原則 2.6接口隔離原則 2.7合成復用原則 2.8迪米特法則 2.9本章小結 2.10習題 第3章簡單工廠模式 3.1創建型模式 3.2簡單工廠模式概述 3.3簡單工廠模式結構與實現 3.3.1簡單工廠模式結構 3.3.2簡單工廠模式實現 3.4簡單工廠模式應用實例 3.5關于創建對象與使用對象 3.6簡單工廠模式的簡化 3.7簡單工廠模式優/缺點與適用環境 3.7.1簡單工廠模式優點 3.7.2簡單工廠模式缺點 3.7.3簡單工廠模式適用環境 3.8本章小結 3.9習題 第4章工廠方法模式 4.1工廠方法模式概述 4.2工廠方法模式結構與實現 4.2.1工廠方法模式結構 4.2.2工廠方法模式實現 4.3工廠方法模式應用實例 4.4反射機制與配置文件 4.5工廠方法的重載 4.6工廠方法的隱藏 4.7工廠方法模式優/缺點與適用環境 4.7.1工廠方法模式優點 4.7.2工廠方法模式缺點 4.7.3工廠方法模式適用環境 4.8本章小結 4.9習題 第5章抽象工廠模式 5.1產品等級結構與產品族 5.2抽象工廠模式概述 5.3抽象工廠模式結構與實現 5.3.1抽象工廠模式結構 5.3.2抽象工廠模式實現 5.4抽象工廠模式應用實例 5.5開閉原則的傾斜性 5.6抽象工廠模式優/缺點與適用環境 5.6.1抽象工廠模式優點 5.6.2抽象工廠模式缺點 5.6.3抽象工廠模式適用環境 5.7本章小結 5.8習題 第6章建造者模式 6.1建造者模式概述 6.2建造者模式結構與實現 6.2.1建造者模式結構 6.2.2建造者模式實現 6.3建造者模式應用實例 6.4指揮者類的深入討論 6.5建造者模式優/缺點與適用環境 6.5.1建造者模式優點 6.5.2建造者模式缺點 6.5.3建造者模式適用環境 6.6本章小結 6.7習題 第7章原型模式 7.1原型模式概述 7.2原型模式結構與實現 7.2.1原型模式結構 7.2.2淺克隆與深克隆 7.2.3原型模式實現 7.3原型模式應用實例 7.4原型管理器 7.5原型模式優/缺點與適用環境 7.5.1原型模式優點 7.5.2原型模式缺點 7.5.3原型模式適用環境 7.6本章小結 7.7習題 第8章單例模式 8.1單例模式概述 8.2單例模式結構與實現 8.2.1單例模式結構 8.2.2單例模式實現 8.3單例模式應用實例 8.4餓漢式單例與懶漢式單例 8.5單例模式優/缺點與適用環境 8.5.1單例模式優點 8.5.2單例模式缺點 8.5.3單例模式適用環境 8.6本章小結 8.7習題 第9章適配器模式 9.1結構型模式 9.2適配器模式概述 9.3適配器模式結構與實現 9.3.1適配器模式結構 9.3.2適配器模式實現 9.4適配器模式應用實例 9.5缺省適配器模式 9.6雙向適配器 9.7適配器模式優/缺點與適用環境 9.7.1適配器模式優點 9.7.2適配器模式缺點 9.7.3適配器模式適用環境 9.8本章小結 9.9習題 第10章橋接模式 10.1橋接模式概述 10.2橋接模式結構與實現 10.2.1橋接模式結構 10.2.2橋接模式實現 10.3橋接模式應用實例 10.4橋接模式與適配器模式的聯用 10.5橋接模式優/缺點與適用環境 10.5.1橋接模式優點 10.5.2橋接模式缺點 10.5.3橋接模式適用環境 10.6本章小結 10.7習題 第11章組合模式 11.1組合模式概述 11.2組合模式結構與實現 11.2.1組合模式結構 11.2.2組合模式實現 11.3組合模式應用實例 11.4透明組合模式與安全組合模式 11.5組合模式優/缺點與適用環境 11.5.1組合模式優點 11.5.2組合模式缺點 11.5.3組合模式適用環境 11.6本章小結 11.7習題 第12章裝飾模式 12.1裝飾模式概述 12.2裝飾模式結構與實現 12.2.1裝飾模式結構 12.2.2裝飾模式實現 12.3裝飾模式應用實例 12.4透明裝飾模式與半透明裝飾模式 12.5裝飾模式優/缺點與適用環境 12.5.1裝飾模式優點 12.5.2裝飾模式缺點 12.5.3裝飾模式適用環境 12.6本章小結 12.7習題 第13章外觀模式 13.1外觀模式概述 13.2外觀模式結構與實現 13.2.1外觀模式結構 13.2.2外觀模式實現 13.3外觀模式應用實例 13.4抽象外觀類 13.5外觀模式優/缺點與適用環境 13.5.1外觀模式優點 13.5.2外觀模式缺點 13.5.3外觀模式適用環境 13.6本章小結 13.7習題 第14章享元模式 14.1享元模式概述 14.2享元模式結構與實現 14.2.1享元模式結構 14.2.2享元模式實現 14.3享元模式應用實例 14.4有外部狀態的享元模式 14.5單純享元模式與復合享元模式 14.6享元模式與String類 14.7享元模式優/缺點與適用環境 14.7.1享元模式優點 14.7.2享元模式缺點 14.7.3享元模式適用環境 14.8本章小結 14.9習題 第15章代理模式 15.1代理模式概述 15.2代理模式結構與實現 15.2.1代理模式結構 15.2.2代理模式實現 15.3代理模式應用實例 15.4遠程代理 15.5虛擬代理 15.6Java動態代理 15.7代理模式優/缺點與適用環境 15.7.1代理模式優點 15.7.2代理模式缺點 15.7.3代理模式適用環境 15.8本章小結 15.9習題 第16章職責鏈模式 16.1行為型模式 16.2職責鏈模式概述 16.3職責鏈模式結構與實現 16.3.1職責鏈模式結構 16.3.2職責鏈模式實現 16.4職責鏈模式應用實例 16.5純與不純的職責鏈模式 16.6職責鏈模式優/缺點與適用環境 16.6.1職責鏈模式優點 16.6.2職責鏈模式缺點 16.6.3職責鏈模式適用環境 16.7本章小結 16.8習題 第17章命令模式 17.1命令模式概述 17.2命令模式結構與實現 17.2.1命令模式結構 17.2.2命令模式實現 17.3命令模式應用實例 17.4實現命令隊列 17.5記錄請求日志 17.6實現撤銷操作 17.7宏命令 17.8命令模式優/缺點與適用環境 17.8.1命令模式優點 17.8.2命令模式缺點 17.8.3命令模式適用環境 17.9本章小結 17.10習題 第18章解釋器模式 18.1解釋器模式概述 18.2文法規則和抽象語法樹 18.3解釋器模式結構與實現 18.3.1解釋器模式結構 18.3.2解釋器模式實現 18.4解釋器模式應用實例 18.5解釋器模式優/缺點與適用環境 18.5.1解釋器模式優點 18.5.2解釋器模式缺點 18.5.3解釋器模式適用環境 18.6本章小結 18.7習題 第19章迭代器模式 19.1迭代器模式概述 19.2迭代器模式結構與實現 19.2.1迭代器模式結構 19.2.2迭代器模式實現 19.3迭代器模式應用實例 19.4使用內部類實現迭代器 19.5Java內置迭代器 19.6迭代器模式優/缺點與適用環境 19.6.1迭代器模式優點 19.6.2迭代器模式缺點 19.6.3迭代器模式適用環境 19.7本章小結 19.8習題 第20章中介者模式 20.1中介者模式概述 20.2中介者模式結構與實現 20.2.1中介者模式結構 20.2.2中介者模式實現 20.3中介者模式應用實例 20.4擴展中介者與同事類 20.5中介者模式優/缺點與適用環境 20.5.1中介者模式優點 20.5.2中介者模式缺點 20.5.3中介者模式適用環境 20.6本章小結 20.7習題 第21章備忘錄模式 21.1備忘錄模式概述 21.2備忘錄模式結構與實現 21.2.1備忘錄模式結構 21.2.2備忘錄模式實現 21.3備忘錄模式應用實例 21.4實現多次撤銷 21.5備忘錄模式優/缺點與適用環境 21.5.1備忘錄模式優點 21.5.2備忘錄模式缺點 21.5.3備忘錄模式適用環境 21.6本章小結 21.7習題 第22章觀察者模式 22.1觀察者模式概述 22.2觀察者模式結構與實現 22.2.1觀察者模式結構 22.2.2觀察者模式實現 22.3觀察者模式應用實例 22.4JDK對觀察者模式的支持 22.5觀察者模式與Java事件處理 22.6觀察者模式與MVC 22.7觀察者模式優/缺點與適用環境 22.7.1觀察者模式優點 22.7.2觀察者模式缺點 22.7.3觀察者模式適用環境 22.8本章小結 22.9習題 第23章狀態模式 23.1狀態模式概述 23.2狀態模式結構與實現 23.2.1狀態模式結構 23.2.2狀態模式實現 23.3狀態模式應用實例 23.4共享狀態 23.5使用環境類實現狀態轉換 23.6狀態模式優/缺點與適用環境 23.6.1狀態模式優點 23.6.2狀態模式缺點 23.6.3狀態模式適用環境 23.7本章小結 23.8習題 第24章策略模式 24.1策略模式概述 24.2策略模式結構與實現 24.2.1策略模式結構 24.2.2策略模式實現 24.3策略模式應用實例 24.4JavaSE中的布局管理 24.5策略模式優/缺點與適用環境 24.5.1策略模式優點 24.5.2策略模式缺點 24.5.3策略模式適用環境 24.6本章小結 24.7習題 第25章模板方法模式 25.1模板方法模式概述 25.2模板方法模式結構與實現 25.2.1模板方法模式結構 25.2.2模板方法模式實現 25.3模板方法模式應用實例 25.4鉤子方法的使用 25.5模板方法模式優/缺點與適用環境 25.5.1模板方法模式優點 25.5.2模板方法模式缺點 25.5.3模板方法模式適用環境 25.6本章小結 25.7習題 第26章訪問者模式 26.1訪問者模式概述 26.2訪問者模式結構與實現 26.2.1訪問者模式結構 26.2.2訪問者模式實現 26.3訪問者模式應用實例 26.4訪問者模式與組合模式聯用 26.5訪問者模式優/缺點與適用環境 26.5.1訪問者模式優點 26.5.2訪問者模式缺點 26.5.3訪問者模式適用環境 26.6本章小結 26.7習題 附錄AUML類圖 A.1UML概述 A.2類與類的UML表示 A.3類之間的關系 附錄B設計模式模擬試題 B.1模擬試題一 B.2模擬試題二 B.3模擬試題三 參考文獻 本書使用Java語言詳細講解常用的軟件設計模式。全書共26章,內容包括設計模式概述、面向對象設計原則、簡單工廠模式、工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式、適配器模式、橋接模式、組合模式、裝飾模式、外觀模式、享元模式、代理模式、職責鏈模式、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、模板方法模式和訪問者模式。
本書結合大量項目實例對每一個設計模式進行全面、細致的講解。全書結構合理、條理清晰、內容豐富,且在每一章后面都配有一定數量的習題,在附錄中還提供了UML類圖相關知識的介紹和3套設計模式模擬試題。另外,掃描書中二維碼,可以觀看與本書內容配套的課程教學視頻,本書還提供了完整的教學資源。 本書既可作為高等院校計算機及軟件相關專業本科生和研究生軟件設計模式、軟件體系結構、面向對象分析與設計等課程教材,也可作為各軟件培訓機構培訓教材及全國計算機技術與軟件專業技術資格(水平)考試輔導教材,還可作為軟件架構師、軟件工程師及廣大軟件愛好者的自學讀物和參考用書。 設計模式和敏捷開發方法的創始人之一Erich Gamma曾說過: “設計和開發面向對象軟件是非常困難的,而設計和開發可復用的面向對象軟件則更加困難。”正因為如此,在軟件開發過程中,有經驗的設計者往往會重復使用一些他們在以前的設計工作中曾經用到的成功而又有效的解決方案,這些解決方案可以提高開發人員的開發效率與軟件質量,并使得所設計的軟件更加靈活,易于擴展,可復用性也更高。這些解決方案即設計模式,設計模式為實現可維護性復用而誕生,無論是面向對象編程的初學者還是有一定編程經驗的程序員,都可以從設計模式的學習和使用中深入理解面向對象思想的精華,開發出可擴展性和可復用性俱佳的軟件。
設計模式是前人經驗的積累,它將讓我們的軟件變得更像一個藝術品,而不是一堆難以維護和重用的代碼,它已經成功應用于眾多軟件設計中,是一個優秀的面向對象軟件開發人員所必須掌握的知識和技能。本書編者在十多年的軟件開發和計算機教育教學工作中積累了豐富的設計模式使用經驗和教學經驗,也深刻體會到學習設計模式的重要性。目前,國內外越來越多的高校在計算機及軟件工程相關專業的本科生和研究生教學中開設了軟件體系結構、面向對象分析與設計等課程,而設計模式是這些課程的核心組成部分,還有的學校將設計模式作為一門單獨的課程來開設。此外,很多軟件培訓機構在軟件工程師培訓課程中也包含了設計模式相關內容,在各類計算機考試和企業招聘筆試中設計模式相關考題也占據了一定的比例。編者在過去幾年中已完成多種設計模式教材的編寫工作,本書將融合之前幾種教材的優點,力求為廣大師生提供一本內容全面、實用性強、通俗易懂的設計模式教材。 本書的目的在于讓讀者通過大量應用實例和習題,理論聯系實際,以便更快、更好地理解和掌握每一個設計模式。全書共26章,可分為4個部分: 第1部分包含第1章和第2章,主要介紹與設計模式相關的一些基礎知識,包括設計模式概述、7個常用的面向對象設計原則等內容,為后續設計模式的學習奠定基礎; 第2部分包含第3~8章,介紹6種常用的創建型設計模式,分別是簡單工廠模式、工廠方法模式、抽象工廠模式、建造者模式、原型模式和單例模式; 第3部分包含第9~15章,介紹7種常用的結構型設計模式,分別是適配器模式、橋接模式、組合模式、裝飾模式、外觀模式、享元模式和代理模式; 第4部分包含第16~26章,介紹11種常用的行為型設計模式,分別是職責鏈模式、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、模板方法模式和訪問者模式。 本書結合大量項目應用實例對每一個設計模式都進行了細致的講解。全書結構合理、條理清晰、內容豐富、講解深入,且在每一章后面都配有大量的習題,很多習題也都基于項目實例,讓讀者在學完相關知識后能夠更好地消化和鞏固所學知識。此外,在附錄中還提供了UML類圖相關知識的介紹和3套設計模式模擬試題。 本書在編寫過程中參考了大量已有的設計模式書籍,集各家之所長,并進行了適當的整理和擴展,將一些原本深奧并難以理解的設計思想通過簡單的應用實例來解析,讓讀者能夠輕松掌握面向對象設計思想的精髓。本書以“實例驅動教學”為整體編寫原則,每一個模式的學習都基于至少一個應用實例,結合應用實例來分析和講解每一個設計模式,力求通過最通俗易懂的方式讓讀者學習和理解設計模式,讓讀者在真實項目實例的引導下學會選擇和合理運用設計模式。在設計模式講解部分,每一章的基本結構如下: 本書提供了完整的設計模式及應用實例的UML結構圖(類圖)和Java實現代碼,所有類圖均嚴格按照UML 2.X標準繪制,所有代碼均在Eclipse Neon v4.6.0中通過測試且運行無誤。 本書提供了與內容配套的課程教學視頻,并提供了完整的配套教學資料,包括所有實例的源代碼、PPT格式的電子課件、課后習題和模擬試題答案等,任課教師可以通過發送郵件來獲取相關教學資料。這些教學資料將形成一個完整的體系,為教學提供便利。 本書既可作為高等院校計算機及軟件相關專業本科生和研究生軟件設計模式、軟件體系結構、面向對象分析與設計等課程教材,也可作為各軟件培訓機構培訓教材及全國計算機技術與軟件專業技術資格(水平)考試輔導教材,還可作為軟件架構師、軟件工程師及廣大軟件愛好者的自學讀物和參考用書。 由于時間倉促,加之編者學識有限,雖經多次審閱與校稿,但書中不足和疏漏之處在所難免,懇請廣大讀者將意見和建議通過清華大學出版社反饋給我們,力求使本書精益求精,更趨完美。 編者 2018年1月 |