注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)從零學(xué)Java設(shè)計(jì)模式

從零學(xué)Java設(shè)計(jì)模式

從零學(xué)Java設(shè)計(jì)模式

定 價(jià):¥89.00

作 者: [美]米羅斯拉夫·威格納
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787111759782 出版時(shí)間: 2024-09-01 包裝: 平裝-膠訂
開本: 16開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書以實(shí)用的設(shè)計(jì)模式為例,講解了Java近年來在改善語(yǔ)法方面取得的進(jìn)展,同時(shí)在實(shí)現(xiàn)這些模式的過程中展示了語(yǔ)言特性、設(shè)計(jì)模式與平臺(tái)效率之間的關(guān)系。本書涵蓋23種傳統(tǒng)的設(shè)計(jì)模式、11種較為常見的模式,以及8種適用于多線程環(huán)境的并發(fā)模式。另外,本書還簡(jiǎn)要介紹了15種反模式。作者講解這些模式的時(shí)候不僅給出了簡(jiǎn)潔、直觀的范例代碼,而且還利用UML類圖與JFR工具展示了運(yùn)用該模式的程序所具備的架構(gòu)及運(yùn)行細(xì)節(jié),讓讀者能夠更全面地了解模式對(duì)代碼結(jié)構(gòu)的影響,以及模式與Java虛擬機(jī)的交互情況。本書的特點(diǎn)在于把Java這種成熟的編程語(yǔ)言以及該語(yǔ)言最近新增的特性與各種設(shè)計(jì)模式結(jié)合起來,告訴讀者怎樣充分發(fā)揮Java的特性與優(yōu)勢(shì),從而更好地實(shí)現(xiàn)設(shè)計(jì)模式,避免陷入空談概念而無法落實(shí)的境地。

作者簡(jiǎn)介

  米羅斯拉夫·威格納(Miroslav Wengner)是一位熱衷于彈性分布式系統(tǒng)與產(chǎn)品質(zhì)量的軟件工程師。他參與了Robo4J項(xiàng)目(一個(gè)針對(duì)機(jī)器人及物聯(lián)網(wǎng)的響應(yīng)式軟實(shí)時(shí)框架),還為OpenJDK做出了貢獻(xiàn),并參與了其他開源技術(shù)項(xiàng)目。他致力于構(gòu)建彈性、可擴(kuò)展的解決方案。他入選了Java Champions Program,被評(píng)為JavaOne Rockstar,也是JCP的執(zhí)行委員會(huì)委員。他目前在OpenValue公司擔(dān)任首席軟件工程師,工作之余,他還在JavaOne、Devoxx等技術(shù)會(huì)議和博客上分享自己的心得。他很看好Java生態(tài)系統(tǒng),并幫助它變得更好。

圖書目錄

譯者序

前 言
審校者簡(jiǎn)介
第一部分 設(shè)計(jì)模式與Java平臺(tái)的功能
第1章 軟件設(shè)計(jì)模式入門 3
1.1 技術(shù)準(zhǔn)備 3
1.2 編程:從符號(hào)到程序 3
1.3 OOP與APIE 5
1.3.1 封裝—只公布那些必須公布的信息 6
1.3.2 繼承—在應(yīng)該創(chuàng)造新類的時(shí)候創(chuàng)造 6
1.3.3 多態(tài)—根據(jù)需要表現(xiàn)出不同的行為 7
1.3.4 抽象—從細(xì)節(jié)中提取一套標(biāo)準(zhǔn)功能 9
1.3.5 把抽象、多態(tài)、繼承、封裝這四個(gè)概念貫穿起來 11
1.4 SOLID設(shè)計(jì)原則 12
1.4.1 單一功能原則—每個(gè)類只負(fù)責(zé)一件事 13
1.4.2 開閉原則 13
1.4.3 里氏替換原則—子類必須能夠當(dāng)作超類來使用 14
1.4.4 接口隔離原則 15
1.4.5 依賴反轉(zhuǎn)原則 17
1.5 設(shè)計(jì)模式為何如此重要 18
1.6 設(shè)計(jì)模式能夠解決哪些問題 18
1.7 小結(jié) 20
1.8 習(xí)題 21
1.9 參考資料 21
第2章 Java平臺(tái) 22
2.1 技術(shù)準(zhǔn)備 22
2.2 Java是如何誕生的 22
2.3 Java平臺(tái)的模型與功能 23
2.3.1 JDK 24
2.3.2 JRE 25
2.3.3 JVM 25
2.4 垃圾收集機(jī)制與Java內(nèi)存模型 30
2.4.1 JMM 30
2.4.2 GC與自動(dòng)內(nèi)存管理 32
2.5 Java的核心API 35
2.5.1 原始類型與包裝器類型 36
2.5.2 與String有關(guān)的API 37
2.5.3 數(shù)組 39
2.5.4 Java集合框架 40
2.5.5 Math API 42
2.6 函數(shù)式編程與Java 43
2.6.1 lambda與函數(shù)接口 43
2.6.2 用匿名類與lambda表達(dá)式充當(dāng)函數(shù)接口并在Stream API中使用 44
2.7 Java的模塊系統(tǒng) 45
2.8 Java語(yǔ)言在第11~17版之間添加的特性 48
2.8.1 允許使用var關(guān)鍵字聲明lambda表達(dá)式的參數(shù)(Java SE 11,JEP-323) 48
2.8.2 switch表達(dá)式(Java SE 14,JEP-361) 49
2.8.3 文本塊(Java SE 15,JEP-378) 49
2.8.4 instanceof運(yùn)算符的模式匹配功能(Java SE 16,JEP-394) 50
2.8.5 record(Java SE 16,JEP-395) 50
2.8.6 sealed類(Java SE 17,JEP-409) 50
2.8.7 Java API采用UTF-8作為默認(rèn)字符集(Java SE 18,JEP-400) 51
2.8.8 帶有模式匹配功能的switch(Java SE 18,Second Preview,JEP-420) 52
2.9 Java的并發(fā) 52
2.9.1 從線程到執(zhí)行器 52
2.9.2 執(zhí)行任務(wù)的兩種方式 54
2.10 小結(jié) 55
2.11 習(xí)題 56
2.12 參考資料 56
第二部分 用Java語(yǔ)言實(shí)現(xiàn)標(biāo)準(zhǔn)的設(shè)計(jì)模式
第3章 創(chuàng)建型設(shè)計(jì)模式 61
3.1 技術(shù)準(zhǔn)備 61
3.2 從類怎么變成對(duì)象說起 61
3.3 工廠方法模式—根據(jù)輸入的數(shù)據(jù)創(chuàng)建對(duì)象 63
3.3.1 動(dòng)機(jī) 63
3.3.2 該模式在JDK中的運(yùn)用 63
3.3.3 范例代碼 64
3.3.4 模式小結(jié) 66
3.4 抽象工廠模式—用適當(dāng)?shù)墓S方法創(chuàng)建某個(gè)系列的產(chǎn)品 66
3.4.1 動(dòng)機(jī) 67
3.4.2 該模式在JDK中的運(yùn)用 67
3.4.3 范例代碼 67
3.4.4 模式小結(jié) 69
3.5 建造者模式—實(shí)例化復(fù)雜的對(duì)象 70
3.5.1 動(dòng)機(jī) 70
3.5.2 該模式在JDK中的運(yùn)用 70
3.5.3 范例代碼 71
3.5.4 模式小結(jié) 72
3.6 原型模式—克隆對(duì)象 73
3.6.1 動(dòng)機(jī) 73
3.6.2 該模式在JDK中的運(yùn)用 73
3.6.3 范例代碼 74
3.6.4 模式小結(jié) 76
3.7 單例模式—確保某個(gè)類只存在一個(gè)實(shí)例 77
3.7.1 動(dòng)機(jī) 77
3.7.2 該模式在JDK中的運(yùn)用 77
3.7.3 范例代碼 77
3.7.4 模式小結(jié) 79
3.8 對(duì)象池模式—提高性能 80
3.8.1 動(dòng)機(jī) 80
3.8.2 該模式在JDK中的運(yùn)用 80
3.8.3 范例代碼 80
3.8.4 模式小結(jié) 82
3.9 惰性初始化模式—按需初始化對(duì)象 83
3.9.1 動(dòng)機(jī) 83
3.9.2 該模式在JDK中的運(yùn)用 83
3.9.3 范例代碼 84
3.9.4 模式小結(jié) 86
3.10 依賴注入模式—減少類之間的依賴關(guān)系 86
3.10.1 動(dòng)機(jī) 86
3.10.2 該模式在JDK中的運(yùn)用 87
3.10.3 范例代碼 87
3.10.4 模式小結(jié) 90
3.11 小結(jié) 91
3.12 習(xí)題 92
3.13 參考資料 92
第4章 結(jié)構(gòu)型設(shè)計(jì)模式 93
4.1 技術(shù)準(zhǔn)備 93
4.2 適配器模式—讓不兼容的對(duì)象變得兼容 93
4.2.1 動(dòng)機(jī) 93
4.2.2 該模式在JDK中的運(yùn)用 94
4.2.3 范例代碼 94
4.2.4 模式小結(jié) 97
4.3 橋接模式—獨(dú)立地解耦對(duì)象和開發(fā)對(duì)象 97
4.3.1 動(dòng)機(jī) 97
4.3.2 該模式在JDK中的運(yùn)用 97
4.3.3 范例代碼 98
4.3.4 模式小結(jié) 100
4.4 組合模式—用相同的方式處理不同的對(duì)象 100
4.4.1 動(dòng)機(jī) 100
4.4.2 該模式在JDK中的運(yùn)用 100
4.4.3 范例代碼 101
4.4.4 模式小結(jié) 102
4.5 修飾器模式—擴(kuò)展對(duì)象的功能 102
4.5.1 動(dòng)機(jī) 102
4.5.2 該模式在JDK中的運(yùn)用 103
4.5.3 范例代碼 103
4.5.4 模式小結(jié) 105
4.6 外觀模式—簡(jiǎn)化程序與某一群對(duì)象之間的通信邏輯 105
4.6.1 動(dòng)機(jī) 105
4.6.2 該模式在JDK中的運(yùn)用 105
4.6.3 范例代碼 106
4.6.4 模式小結(jié) 107
4.7 過濾器模式—根據(jù)條件選出需要的對(duì)象 107
4.7.1 動(dòng)機(jī) 107
4.7.2 該模式在JDK中的運(yùn)用 107
4.7.3 范例代碼 107
4.7.4 模式小結(jié) 110
4.8 享元模式—跨應(yīng)用程序共享對(duì)象  110
4.8.1 動(dòng)機(jī)  110
4.8.2 該模式在JDK中的運(yùn)用  110
4.8.3 范例代碼  110
4.8.4 模式小結(jié)  112
4.9 前端控制器模式—統(tǒng)一處理請(qǐng)求  112
4.9.1 動(dòng)機(jī)  112
4.9.2 該模式在JDK中的運(yùn)用  113
4.9.3 范例代碼  113
4.9.4 模式小結(jié)  115
4.10 標(biāo)記模式—識(shí)別實(shí)例  115
4.10.1 動(dòng)機(jī)  115
4.10.2 該模式在JDK中的運(yùn)用  115
4.10.3 范例代碼  116
4.10.4 模式小結(jié)  118
4.11 模塊模式—利用模塊的概念來管理各個(gè)組件  118
4.11.1 動(dòng)機(jī)  118
4.11.2 該模式在JDK中的運(yùn)用  118
4.11.3 范例代碼  118
4.11.4 模式小結(jié)  120
4.12 代理模式—為對(duì)象提供占位符  120
4.12.1 動(dòng)機(jī)  120
4.12.2 該模式在JDK中的運(yùn)用  121
4.12.3 范例代碼  121
4.12.4 模式小結(jié)  122
4.13 孿生模式—在Java語(yǔ)言中實(shí)現(xiàn)多重繼承  122
4.13.1 動(dòng)機(jī)  122
4.13.2 范例代碼  123
4.13.3 模式小結(jié)  124
4.14 小結(jié)  124
4.15 習(xí)題  125
4.16 參考資料  125
第5章 行為型設(shè)計(jì)模式  126
5.1 技術(shù)準(zhǔn)備  126
5.2 緩存模式—降低程序開銷  126
5.2.1 動(dòng)機(jī)  127
5.2.2 該模式在JDK中的運(yùn)用  127
5.2.3 范例代碼  127
5.2.4 模式小結(jié)  129
5.3 責(zé)任鏈模式—清晰而靈活地處理事件  129
5.3.1 動(dòng)機(jī)  129
5.3.2 該模式在JDK中的運(yùn)用  130
5.3.3 范例代碼  130
5.3.4 模式小結(jié)  131
5.4 命令模式—把信息轉(zhuǎn)化成相應(yīng)的動(dòng)作  132
5.4.1 動(dòng)機(jī)  132
5.4.2 該模式在JDK中的運(yùn)用  132
5.4.3 范例代碼  132
5.4.4 模式小結(jié)  133
5.5 解釋器模式—賦予上下文意義  134
5.5.1 動(dòng)機(jī)  134
5.5.2 該模式在JDK中的運(yùn)用  134
5.5.3 范例代碼  134
5.5.4 模式小結(jié)  136
5.6 迭代器模式—檢查所有元素  136
5.6.1 動(dòng)機(jī)  136
5.6.2 該模式在JDK中的運(yùn)用  136
5.6.3 范例代碼  136
5.6.4 模式小結(jié)  138
5.7 中介者模式—讓對(duì)象之間更好地交換信息  138
5.7.1 動(dòng)機(jī)  138
5.7.2 該模式在JDK中的運(yùn)用  139
5.7.3 范例代碼  139
5.7.4 模式小結(jié)  140
5.8 備忘錄模式—把對(duì)象恢復(fù)到應(yīng)有的狀態(tài)  140
5.8.1 動(dòng)機(jī)  140
5.8.2 該模式在JDK中的運(yùn)用  140
5.8.3 范例代碼  140
5.8.4 模式小結(jié)  142
5.9 空對(duì)象模式—避免空指針異常  143
5.9.1 動(dòng)機(jī)  143
5.9.2 該模式在JDK中的運(yùn)用  143
5.9.3 范例代碼  143
5.9.4 模式小結(jié)  144
5.10 觀察者模式—讓相關(guān)各方都得到通知  145
5.10.1 動(dòng)機(jī)  145
5.10.2 該模式在JDK中的運(yùn)用  145
5.10.3 范例代碼  145
5.10.4 模式小結(jié)  146
5.11 管道模式—處理實(shí)例階段  146
5.11.1 動(dòng)機(jī)  147
5.11.2 該模式在JDK中的運(yùn)用  147
5.11.3 范例代碼  147
5.11.4 模式小結(jié)  148
5.12 狀態(tài)模式—變更對(duì)象的內(nèi)部行為  149
5.12.1 動(dòng)機(jī)  149
5.12.2 該模式在JDK中的運(yùn)用  149
5.12.3 范例代碼  149
5.12.4 模式小結(jié)  150
5.13 策略模式—切換對(duì)象的行為  150
5.13.1 動(dòng)機(jī)  151
5.13.2 該模式在JDK中的運(yùn)用  151
5.13.3 范例代碼  151
5.13.4 模式小結(jié)  152
5.14 模板模式—制定標(biāo)準(zhǔn)的處理流程  153
5.14.1 動(dòng)機(jī)  153
5.14.2 該模式在JDK中的運(yùn)用  153
5.14.3 范例代碼  153
5.14.4 模式小結(jié)  155
5.15 訪問者模式—根據(jù)對(duì)象的類型執(zhí)行代碼  155
5.15.1 動(dòng)機(jī)  155
5.15.2 該模式在JDK中的運(yùn)用  155
5.15.3 范例代碼  155
5.15.4 模式小結(jié)  157
5.16 小結(jié)  158
5.17 習(xí)題  158
5.18 參考資料  159
第三部分 其他重要的模式與反模式
第6章 并發(fā)設(shè)計(jì)模式  163
6.1 技術(shù)準(zhǔn)備  163
6.2 主動(dòng)對(duì)象模式—解耦方法的執(zhí)行時(shí)機(jī)與觸發(fā)時(shí)機(jī)  164
6.2.1 動(dòng)機(jī)  164
6.2.2 范例代碼  164
6.2.3 模式小結(jié)  167
6.3 異步方法調(diào)用模式—讓任務(wù)以非阻塞的方式執(zhí)行  167
6.3.1 動(dòng)機(jī)  167
6.3.2 范例代碼  167
6.3.3 模式小結(jié)  169
6.4 阻行模式—延遲執(zhí)行,直到前一個(gè)任務(wù)完成  170
6.4.1 動(dòng)機(jī)  171
6.4.2 范例代碼  171
6.4.3 模式小結(jié)  173
6.5 雙重檢查鎖模式—提供唯一的對(duì)象實(shí)例  173
6.5.1 動(dòng)機(jī)  173
6.5.2 范例代碼  174
6.5.3 模式小結(jié)  176
6.6 讀寫鎖模式—實(shí)現(xiàn)有目的的線程阻塞  176
6.6.1 動(dòng)機(jī)  176
6.6.2 范例代碼  177
6.6.3 模式小結(jié)  178
6.7 生產(chǎn)者–消費(fèi)者模式—解耦執(zhí)行邏輯  180
6.7.1 動(dòng)機(jī)  180
6.7.2 范例代碼  180
6.7.3 模式小結(jié)  181
6.8 調(diào)度器模式—執(zhí)行孤立的任務(wù)  182
6.8.1 動(dòng)機(jī)  182
6.8.2 范例代碼  183
6.8.3 模式小結(jié)  187
6.9 線程池模式—有效地利用線程  187
6.9.1 動(dòng)機(jī)  187
6.9.2 范例代碼  187
6.9.3 模式小結(jié)  188
6.10 小結(jié)  189
6.11 習(xí)題  190
6.12 參考資料  190
第7章 常見的反模式  191
7.1 技術(shù)準(zhǔn)備  192
7.2 什么是反模式,怎樣發(fā)現(xiàn)反模式  192
7.2.1 從是否違背開發(fā)原則的角度發(fā)現(xiàn)反模式  192
7.2.2 注意那些有可能形成瓶頸的技術(shù)債務(wù)  192
7.2.3 不要錯(cuò)誤地使用Java平臺(tái)的功能  193
7.2.4 選擇合適的工具  195
7.2.5 代碼壞味反模式小結(jié)  196
7.3 認(rèn)識(shí)軟件開發(fā)中常見的反模式  197
7.3.1 意大利面條式的代碼  197
7.3.2 復(fù)制粘貼式編程  198
7.3.3 blob  198
7.3.4 熔巖流  199
7.3.5 功能分散  199
7.3.6 船錨  199
7.3.7 軟件開發(fā)中的反模式小結(jié)  200
7.4 軟件架構(gòu)中的反模式  200
7.4.1 金錘  200
7.4.2 頻繁更替  200
7.4.3 輸入問題  201
7.4.4 雷區(qū)探險(xiǎn)  201
7.4.5 用意不明  202
7.4.6 幽靈  202
7.4.7 死路  202
7.4.8 軟件架構(gòu)中的反模式小結(jié)  203
7.5 小結(jié)  203
7.6 參考資料  204
習(xí)題參考答案  205
第1章  205
第2章  205
第3章  206
第4章  206
第5章  207
第6章  207

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)