《設(shè)計(jì)模式與游戲完美開發(fā)》是作者十年磨一劍,將設(shè)計(jì)模式理論巧妙地融合到實(shí)踐中的*教材。
全書采用了整合式的項(xiàng)目教學(xué),即以一個(gè)游戲的范例來(lái)應(yīng)用23種設(shè)計(jì)模式的實(shí)現(xiàn)貫穿全書,讓讀者學(xué)習(xí)到整個(gè)游戲開發(fā)的全過程和作者想要傳承的經(jīng)驗(yàn),并以淺顯易懂的比喻來(lái)解析難以理解的設(shè)計(jì)模式,讓想深入了解此領(lǐng)域的讀者更加容易上手。
本書既可以作為大學(xué)、專科和職業(yè)院校游戲程序設(shè)計(jì)專業(yè)的教材,也可以作為游戲從業(yè)人員提高游戲設(shè)計(jì)能力和規(guī)范運(yùn)用設(shè)計(jì)模式的培訓(xùn)教材,還可以作為有這方面職業(yè)興趣的讀者學(xué)習(xí)和提高的自學(xué)參考書。
十年磨一劍,作者將設(shè)計(jì)模式理論巧妙地融入到實(shí)踐中,以一個(gè)游戲的完整實(shí)現(xiàn)呈現(xiàn)設(shè)計(jì)模式的應(yīng)用及經(jīng)驗(yàn)的傳承 《軒轅劍》之父蔡明宏、資深游戲制作人李佳澤、Product Evangelist at Unity TechnologiesKelvin Lo、信仁軟件設(shè)計(jì)創(chuàng)辦人 賴信仁、資深3D游戲美術(shù)劉明愷 聯(lián)合推薦全書采用了整合式的項(xiàng)目教學(xué),即以一個(gè)游戲的范例來(lái)應(yīng)用23種設(shè)計(jì)模式的實(shí)現(xiàn)貫穿全書,讓讀者學(xué)習(xí)到整個(gè)游戲開發(fā)的全過程和作者想要傳承的經(jīng)驗(yàn),并以淺顯易懂的比喻來(lái)解析難以理解的設(shè)計(jì)模式,讓想深入了解此領(lǐng)域的讀者更加容易上手。
初次接觸設(shè)計(jì)模式(Design Patterns)是在求學(xué)階段,第一次看GoF的《Design Patterns: Elements of Reusable Object-Oriented Software》時(shí),感覺尤如天書一般,只能大概了解Singleton、Strategy、Facade、Iterator這幾個(gè)Pattern的用法,至于為什么要使用、什么時(shí)候使用,完全沒有概念。進(jìn)入職場(chǎng)后,先是跟著幾個(gè)大型游戲項(xiàng)目一同開發(fā)和學(xué)習(xí),到后來(lái),自己可以主持技術(shù)項(xiàng)目、開發(fā)網(wǎng)絡(luò)游戲引擎、游戲框架等。在這個(gè)過程中,時(shí)而拿起GoF的《Design Patterns》或是以設(shè)計(jì)模式為題的書籍,反復(fù)閱讀,逐漸地了解了每一種模式的應(yīng)用以及它們的設(shè)計(jì)分析原理,并通過不斷地實(shí)踐與應(yīng)用,才將它們?nèi)谌胱约旱闹R(shí)體系中。從2004年進(jìn)入職場(chǎng),一晃眼,在游戲業(yè)也超過了10的經(jīng)歷,這些年在游戲行業(yè)工作的付出,除了得以溫飽之外,也從中吸收了不少的知識(shí)與經(jīng)驗(yàn)。記得某天在一個(gè)項(xiàng)目開發(fā)會(huì)議中,我與同仁分享如何將設(shè)計(jì)模式應(yīng)用在游戲的開發(fā)設(shè)計(jì)中時(shí),我突然察覺,應(yīng)該將這些內(nèi)容寫下來(lái),并分享給更多的游戲設(shè)計(jì)師,于是就有了寫這本書的想法。通過寫作將經(jīng)驗(yàn)與大家分享,希望大家可以了解,在游戲行業(yè)中的工程師,不該只是進(jìn)行著無(wú)意義程序代碼輸出的碼農(nóng),而是一群從事高級(jí)軟件分析實(shí)現(xiàn)的設(shè)計(jì)師。所以,整合多種領(lǐng)域知識(shí)于一身的游戲工程師,更需要以優(yōu)雅的方式來(lái)呈現(xiàn)這些知識(shí)匯集的結(jié)果,設(shè)計(jì)模式(Design Patterns)是各種軟件設(shè)計(jì)技巧的呈現(xiàn)方式,善用它們,更能表現(xiàn)出游戲設(shè)計(jì)工程師優(yōu)雅的一面。10年的游戲從業(yè)過程,接受過許多人的協(xié)助及幫忙:Jimmy & Silent兄弟20年的同學(xué)、朋友及合作伙伴們,有你們一路的協(xié)助與砥礪才能有今天;Justin Lee謝謝你的信任,也感謝你的忍受功力,可以讓我們一同完成不少作品;Mark Tsai謝謝你一路的提拔與信任;Jazzdog感謝你的支持,我一直知道程序與美術(shù)是可以同時(shí)存在于一個(gè)人身上的;Kai合作伙伴,感謝你的支持。最后謝謝我的家人,感謝老婆大人這10多年來(lái)忍受我在書房?jī)?nèi)不斷地堆積書本、小說(shuō)及收藏品。感謝我3歲的女兒,因?yàn)槟愕牡絹?lái),讓我知道沒什么比你更重要了。
蔡升達(dá)2016年10月
蔡升達(dá)當(dāng)年為實(shí)現(xiàn)游戲夢(mèng)從學(xué)術(shù)界進(jìn)入游戲業(yè),累積了10年游戲開發(fā)經(jīng)驗(yàn),包含多款大型多人線上游戲(MMORPG)、網(wǎng)頁(yè)游戲(Web Game)、移動(dòng)平臺(tái)連線游戲(APP Game)。曾任職于臺(tái)灣地區(qū)知名游戲開發(fā)公司,擔(dān)任游戲設(shè)計(jì)師、專案程序統(tǒng)籌、研發(fā)技術(shù)中心經(jīng)理等職務(wù),現(xiàn)任知名新創(chuàng)團(tuán)隊(duì)研發(fā)總監(jiān)一職。擅長(zhǎng)游戲程序設(shè)計(jì)、網(wǎng)絡(luò)程序設(shè)計(jì)、分布式系統(tǒng)設(shè)計(jì)、電腦圖學(xué)、影像搜索、游戲制作規(guī)劃及運(yùn)作、游戲?qū)0腹芾怼O矚g閱讀,家中有上千本藏書,包含信息技術(shù)、文學(xué)、奇幻小說(shuō)、歷史小說(shuō)等,因?yàn)榭戳撕芏啵砸灿泻芏嘞敕ㄏ肱c人分享。構(gòu)想多年之后,某日下午終于下筆開始了這本書。十年磨一劍,作者將設(shè)計(jì)模式理論巧妙地融入到實(shí)踐中,以一個(gè)游戲的完整實(shí)現(xiàn)呈現(xiàn)設(shè)計(jì)模式的應(yīng)用及經(jīng)驗(yàn)的傳承
第1篇 設(shè)計(jì)模式與游戲設(shè)計(jì)
第1章 游戲?qū)崿F(xiàn)中的設(shè)計(jì)模式 2
1.1 設(shè)計(jì)模式的起源 2
1.2 軟件的設(shè)計(jì)模式是什么? 3
1.3 面向?qū)ο笤O(shè)計(jì)中常見的設(shè)計(jì)原則 4
1.4 為什么要學(xué)習(xí)設(shè)計(jì)模式 7
1.5 游戲程序設(shè)計(jì)與設(shè)計(jì)模式 8
1.6 模式的應(yīng)用與學(xué)習(xí)方式 10
1.7 結(jié)論 11
第2章 游戲范例說(shuō)明 12
2.1 游戲范例 12
2.2
GoF的設(shè)計(jì)模式范例 15
第2篇 基礎(chǔ)系統(tǒng)
第3章 游戲場(chǎng)景的轉(zhuǎn)換狀態(tài)模式(State) 20
3.1 游戲場(chǎng)景 20
3.1.1
場(chǎng)景的轉(zhuǎn)換 20
3.1.2
游戲場(chǎng)景可能的實(shí)現(xiàn)方式 23
3.2 狀態(tài)模式(State) 24
3.2.1
狀態(tài)模式(State)的定義 24
3.2.2
狀態(tài)模式(State)的說(shuō)明 25
3.2.3
狀態(tài)模式(State)的實(shí)現(xiàn)范例 25
3.3 使用狀態(tài)模式(State)實(shí)現(xiàn)游戲場(chǎng)景的轉(zhuǎn)換 28
3.3.1
SceneState的實(shí)現(xiàn) 28
3.3.2
實(shí)現(xiàn)說(shuō)明 29
3.3.3
使用狀態(tài)模式(State)的優(yōu)點(diǎn) 35
3.3.4
游戲執(zhí)行流程及場(chǎng)景轉(zhuǎn)換說(shuō)明 36
3.4
狀態(tài)模式(State)面對(duì)變化時(shí) 37
3.5 結(jié)論 37
第4章 游戲主要類外觀模式(Facade) 39
4.1 游戲子功能的整合 39
4.2 外觀模式(Facade) 41
4.2.1
外觀模式(Facade)的定義 41
4.2.2
外觀模式(Facade)的說(shuō)明 42
4.2.3
外觀模式(Facade)的實(shí)現(xiàn)說(shuō)明 43
4.3 使用外觀模式(Facade)實(shí)現(xiàn)游戲主程序 44
4.3.1
游戲主程序架構(gòu)設(shè)計(jì) 44
4.3.2
實(shí)現(xiàn)說(shuō)明 45
4.3.3
使用外觀模式(Facade)的優(yōu)點(diǎn) 47
4.3.4
實(shí)現(xiàn)外觀模式(Facade)時(shí)的注意事項(xiàng) 48
4.4 外觀模式(Facade)面對(duì)變化時(shí) 48
4.5 結(jié)論 48
第5章 獲取游戲服務(wù)的唯一對(duì)象單例模式(Singleton) 50
5.1 游戲?qū)崿F(xiàn)中的唯一對(duì)象 50
5.2 單例模式(Singleton) 51
5.2.1
單例模式(Singleton)的定義 51
5.2.2
單例模式(Singleton)的說(shuō)明 51
5.2.3
單例模式(Singleton)的實(shí)現(xiàn)范例 52
5.3 使用單例模式(Singleton)獲取唯一的游戲服務(wù)對(duì)象
53
5.3.1
游戲服務(wù)類的單例模式實(shí)現(xiàn) 53
5.3.2
實(shí)現(xiàn)說(shuō)明 54
5.3.3
使用單例模式(Singleton)后的比較 55
5.3.4
反對(duì)使用單例模式(Singleton)的原因 55
5.4 少用單例模式(Singleton)時(shí)如何方便地引用到單一對(duì)象 58
5.5 結(jié)論 63
第6章 游戲內(nèi)各系統(tǒng)的整合中介者模式(Mediator) 64
6.1 游戲系統(tǒng)之間的溝通 64
6.2 中介者模式(Mediator) 68
6.2.1
中介者模式(Mediator)的定義 69
6.2.2
中介者模式(Mediator)的說(shuō)明 69
6.2.3
中介者模式(Mediator)的實(shí)現(xiàn)范例 69
6.3 中介者模式(Mediator)作為系統(tǒng)之間的溝通接口
72
6.3.1
使用中介者模式(Mediator)的系統(tǒng)架構(gòu) 73
6.3.2
實(shí)現(xiàn)說(shuō)明 73
6.3.3
使用中介者模式(Mediator)的優(yōu)點(diǎn) 79
6.3.4
實(shí)現(xiàn)中介者模式(Mediator)時(shí)的注意事項(xiàng) 79
6.4 中介者模式(Mediator)面對(duì)變化時(shí) 80
6.5 結(jié)論 80
第7章 游戲的主循環(huán)Game
Loop 82
7.1
GameLoop由此開始 82
7.2 怎么實(shí)現(xiàn)游戲循環(huán)(Game
Loop) 84
7.3 在Unity3D中實(shí)現(xiàn)游戲循環(huán) 85
7.4
P級(jí)陣地的游戲循環(huán) 89
7.5 結(jié)論 92
第3篇 角色的設(shè)計(jì)
第8章 角色系統(tǒng)的設(shè)計(jì)分析 94
8.1 游戲角色的架構(gòu) 94
8.2 角色類的規(guī)劃 95
第9章 角色與武器的實(shí)現(xiàn)橋接模式(Bridge) 98
9.1 角色與武器的關(guān)系 98
9.2 橋接模式(Bridge) 103
9.2.1
橋接模式(Bridge)的定義 103
9.2.2
橋接模式(Bridge)的說(shuō)明 107
9.2.3
橋接模式(Bridge)的實(shí)現(xiàn)范例 108
9.3 使用橋接模式(Bridge)實(shí)現(xiàn)角色與武器接口
110
9.3.1
角色與武器接口設(shè)計(jì) 110
9.3.2
實(shí)現(xiàn)說(shuō)明 111
9.3.3
使用橋接模式(Bridge)的優(yōu)點(diǎn) 116
9.3.4
實(shí)現(xiàn)橋接模式(Bridge)的注意事項(xiàng) 116
9.4 橋接模式(Bridge)面對(duì)變化時(shí) 116
9.5 結(jié)論 117
第10章 角色屬性的計(jì)算策略模式(Strategy) 118
10.1
角色屬性的計(jì)算需求 118
10.2
策略模式(Strategy) 121
10.2.1
策略模式(Strategy)的定義 122
10.2.2
策略模式(Strategy)的說(shuō)明 122
10.2.3
策略模式(Strategy)的實(shí)現(xiàn)范例 123
10.3
使用策略模式(Strategy)實(shí)現(xiàn)攻擊計(jì)算 124
10.3.1
攻擊流程的實(shí)現(xiàn) 125
10.3.2
實(shí)現(xiàn)說(shuō)明 125
10.3.3
使用策略模式(Strategy)的優(yōu)點(diǎn) 132
10.3.4
實(shí)現(xiàn)策略模式(Strategy)時(shí)的注意事項(xiàng) 133
10.4
策略模式(Strategy)面對(duì)變化時(shí) 134
10.5
結(jié)論 135
第11章 攻擊特效與擊中反應(yīng)模板方法模式(Template Method) 137
11.1
武器的攻擊流程 137
11.2
模板方法模式(Template Method) 139
11.2.1
模板方法模式(Template Method)的定義 139
11.2.2
模板方法模式(Template Method)的說(shuō)明 141
11.2.3
模板方法模式(Template Method)的實(shí)現(xiàn)范例 141
11.3
使用模板方法模式實(shí)現(xiàn)攻擊與擊中流程 142
11.3.1
攻擊與擊中流程的實(shí)現(xiàn) 143
11.3.2
實(shí)現(xiàn)說(shuō)明 143
11.3.3
運(yùn)用模板方法模式(Template Method)的優(yōu)點(diǎn) 145
11.3.4
修改擊中流程的實(shí)現(xiàn) 145
11.4
模板方法模式(Template Method)面對(duì)變化時(shí) 147
11.5
結(jié)論 149
第12章 角色AI狀態(tài)模式(State) 150
12.1
角色的AI 150
12.2
狀態(tài)模式(State) 158
12.3
使用狀態(tài)模式(State)實(shí)現(xiàn)角色AI 159
12.3.1
角色AI的實(shí)現(xiàn) 159
12.3.2
實(shí)現(xiàn)說(shuō)明 160
12.3.3
使用狀態(tài)模式(State)的優(yōu)點(diǎn) 169
12.3.4
角色AI執(zhí)行流程 169
12.4
狀態(tài)模式(State)面對(duì)變化時(shí) 170
12.5
結(jié)論 172
第13章 角色系統(tǒng) 174
13.1
角色類 174
13.2
游戲角色管理系統(tǒng) 176
第4篇 角色的產(chǎn)生
第14章 游戲角色的產(chǎn)生工廠方法模式(Factory Method) 183
14.1
產(chǎn)生角色 183
14.2
工廠方法模式(Factory Method) 188
14.2.1
工廠方法模式(Factory Method)的定義 188
14.2.2
工廠方法模式(Factory Method)的說(shuō)明 189
14.2.3
工廠方法模式(Factory Method)的實(shí)現(xiàn)范例 189
14.3
使用工廠方法模式(Factory Method)產(chǎn)生角色對(duì)象 195
14.3.1
角色工廠類 195
14.3.2
實(shí)現(xiàn)說(shuō)明 196
14.3.3
使用工廠方法模式(Factory Method)的優(yōu)點(diǎn) 199
14.3.4
工廠方法模式(Factory Method)的實(shí)現(xiàn)說(shuō)明 199
14.4
工廠方法模式(Factory Method)面對(duì)變化時(shí) 203
14.5
結(jié)論 205
第15章 角色的組裝建造者模式(Builder) 206
15.1
角色功能的組裝 206
15.2
建造者模式(Builder) 213
15.2.1
建造者模式(Builder)的定義 213
15.2.2
建造者模式(Builder)的說(shuō)明 214
15.2.3
建造者模式(Builder)的實(shí)現(xiàn)范例 215
15.3
使用建造者模式(Builder)組裝角色的各項(xiàng)功能 217
15.3.1
角色功能的組裝 218
15.3.2
實(shí)現(xiàn)說(shuō)明 219
15.3.3
使用建造者模式(Builder)的優(yōu)點(diǎn) 226
15.3.4
角色建造者的執(zhí)行流程 226
15.4
建造者模式(Builder)面對(duì)變化時(shí) 227
15.5
結(jié)論 228
第16章 游戲?qū)傩怨芾砉δ芟碓J剑‵lyweight) 229
16.1
游戲?qū)傩缘墓芾?229
16.2
享元模式(Flyweight) 236
16.2.1
享元模式(Flyweight)的定義 236
16.2.2
享元模式(Flyweight)的說(shuō)明 237
16.2.3
享元模式(Flyweight)的實(shí)現(xiàn)范例 238
16.3
使用享元模式(Flyweight)實(shí)現(xiàn)游戲 242
16.3.1
SceneState的實(shí)現(xiàn) 242
16.3.2
實(shí)現(xiàn)說(shuō)明 245
16.3.3
使用享元模式(Flyweight)的優(yōu)點(diǎn) 250
16.3.4
享元模式(Flyweight)的實(shí)現(xiàn)說(shuō)明 250
16.4
享元模式(Flyweight)面對(duì)變化時(shí) 252
16.5
結(jié)論 252
第5篇 戰(zhàn)爭(zhēng)開始
第17章 Unity3D的界面設(shè)計(jì)組合模式(Composite) 254
17.1
玩家界面設(shè)計(jì) 254
17.2
組合模式(Composite) 259
17.2.1
組合模式(Composite)的定義 259
17.2.2
組合模式(Composite)的說(shuō)明 260
17.2.3
組合模式(Composite)的實(shí)現(xiàn)范例 261
17.2.4
分了兩個(gè)子類但是要使用同一個(gè)操作界面 264
17.3
Unity3D游戲?qū)ο蟮姆謱邮焦芾砉δ?265
17.3.1
游戲?qū)ο蟮姆謱庸芾?265
17.3.2
正確有效地獲取UI的游戲?qū)ο?266
17.3.3
游戲用戶界面的實(shí)現(xiàn) 267
17.3.4
兵營(yíng)界面的實(shí)現(xiàn) 269
17.4
結(jié)論 274
第18章 兵營(yíng)系統(tǒng)及兵營(yíng)信息顯示
276
18.1
兵營(yíng)系統(tǒng) 276
18.2
兵營(yíng)系統(tǒng)的組成 277
18.3
初始兵營(yíng)系統(tǒng) 281
18.4
兵營(yíng)信息的顯示流程 287
第19章 兵營(yíng)訓(xùn)練單位命令模式(Command) 288
19.1
兵營(yíng)界面上的命令 288
19.2
命令模式(Command) 291
19.2.1
命令模式(Command)的定義 291
19.2.2
命令模式(Command)的說(shuō)明 294
19.2.3
命令模式(Command)的實(shí)現(xiàn)范例 294
19.3
使用命令模式(Command)實(shí)現(xiàn)兵營(yíng)訓(xùn)練角色 297
19.3.1
訓(xùn)練命令的實(shí)現(xiàn) 297
19.3.2
實(shí)現(xiàn)說(shuō)明 298
19.3.3
執(zhí)行流程 302
19.3.4
實(shí)現(xiàn)命令模式(Command)時(shí)的注意事項(xiàng) 303
19.4
命令模式(Command)面對(duì)變化時(shí) 305
19.5
結(jié)論 306
第20章 關(guān)卡設(shè)計(jì)責(zé)任鏈模式(Chain
of Responsibility) 307
20.1
關(guān)卡設(shè)計(jì) 307
20.2
責(zé)任鏈模式(Chain of Responsibility) 312
20.2.1
責(zé)任鏈模式(Chain of Responsibility)的定義 312
20.2.2
責(zé)任鏈模式(Chain of Responsibility)的說(shuō)明 314
20.2.3
責(zé)任鏈模式(Chain of Responsibility)的實(shí)現(xiàn)范例 314
20.3
使用責(zé)任鏈模式(Chain of Responsibility)實(shí)現(xiàn)關(guān)卡系統(tǒng) 317
20.3.1
關(guān)卡系統(tǒng)的設(shè)計(jì) 317
20.3.2
實(shí)現(xiàn)說(shuō)明 318
20.3.3
使用責(zé)任鏈模式(Chain of Responsibility)的優(yōu)點(diǎn) 329
20.3.4
實(shí)現(xiàn)責(zé)任鏈模式(Chain of Responsibility)時(shí)的注意事項(xiàng) 329
20.4
責(zé)任鏈模式(Chain of Responsibility)面對(duì)變化時(shí) 330
20.5
結(jié)論 332
第6篇 輔助系統(tǒng)
第21章 成就系統(tǒng)觀察者模式(Observer) 334
21.1
成就系統(tǒng) 334
21.2
觀察者模式(Observer) 338
21.2.1
觀察者模式(Observer)的定義 338
21.2.2
觀察者模式(Observer)的說(shuō)明 340
21.2.3
觀察者模式(Observer)的實(shí)現(xiàn)范例 341
21.3
使用觀察者模式(Observer)實(shí)現(xiàn)成就系統(tǒng) 344
21.3.1
成就系統(tǒng)的新架構(gòu) 344
21.3.2
實(shí)現(xiàn)說(shuō)明 346
21.3.3
使用觀察者模式(Observer)的優(yōu)點(diǎn) 358
21.3.4
實(shí)現(xiàn)觀察者模式(Observer)時(shí)的注意事項(xiàng) 358
21.4
觀察者模式(Observer)面對(duì)變化時(shí) 359
21.5
結(jié)論 361
第22章 存盤功能備忘錄模式(Memento) 362
22.1
存儲(chǔ)成就記錄 362
22.2
備忘錄模式(Memento) 366
22.2.1
備忘錄模式(Memento)的定義 366
22.2.2
備忘錄模式(Memento)的說(shuō)明 367
22.2.3
備忘錄模式(Memento)的實(shí)現(xiàn)范例 367
22.3
使用備忘錄模式(Memento)實(shí)現(xiàn)成就記錄的保存 371
22.3.1
成就記錄保存的功能設(shè)計(jì) 371
22.3.2
實(shí)現(xiàn)說(shuō)明 371
22.3.3
使用備忘錄模式(Memento)的優(yōu)點(diǎn) 374
22.3.4
實(shí)現(xiàn)備忘錄模式(Memento)的注意事項(xiàng)
374
22.4
備忘錄模式(Memento)面對(duì)變化時(shí) 374
22.5
結(jié)論 375
第23章 角色信息查詢?cè)L問者模式(Visitor) 376
23.1
角色信息的提供 376
23.2
訪問者模式(Visitor) 385
23.2.1
訪問者模式(Visitor)的定義 386
23.2.2
訪問者模式(Visitor)的說(shuō)明 390
23.2.3
訪問者模式(Visitor)的實(shí)現(xiàn)范例 392
23.3
使用訪問者模式(Visitor)實(shí)現(xiàn)角色信息查詢 397
23.3.1 角色信息查詢的實(shí)現(xiàn)設(shè)計(jì) 397
23.3.2
實(shí)現(xiàn)說(shuō)明 398
23.3.3
使用訪問者模式(Visitor)的優(yōu)點(diǎn) 405
23.3.4
實(shí)現(xiàn)訪問者模式(Visitor)時(shí)的注意事項(xiàng) 405
23.4
訪問者模式(Visitor)面對(duì)變化時(shí) 405
23.5
結(jié)論 408
第7篇 調(diào)整與優(yōu)化
第24章 前綴字尾裝飾模式(Decorator) 410
24.1
前綴后綴系統(tǒng) 410
24.2
裝飾模式(Decorator) 415
24.2.1
裝飾模式(Decorator)的定義 415
24.2.2
裝飾模式(Decorator)的說(shuō)明 418
24.2.3
裝飾模式(Decorator)的實(shí)現(xiàn)范例 419
24.3
使用裝飾模式(Decorator)實(shí)現(xiàn)前綴后綴的功能 422
24.3.1
前綴后綴功能的架構(gòu)設(shè)計(jì) 423
24.3.2
實(shí)現(xiàn)說(shuō)明 423
24.3.3
使用裝飾模式(Decorator)的優(yōu)點(diǎn) 433
24.3.4
實(shí)現(xiàn)裝飾模式(Decorator)時(shí)的注意事項(xiàng) 433
24.4
裝飾模式(Decorator)面對(duì)變化時(shí) 434
24.5
結(jié)論 435
第25章 俘兵適配器模式(Adapter) 436
25.1
游戲的寵物系統(tǒng) 436
25.2
適配器模式(Adapter) 440
25.2.1
適配器模式(Adapter)的定義 440
25.2.2
適配器模式(Adapter)的說(shuō)明 441
25.2.3
適配器模式(Adapter)的實(shí)現(xiàn)范例 441
25.3
使用適配器模式(Adapter)實(shí)現(xiàn)俘兵系統(tǒng) 443
25.3.1
俘兵系統(tǒng)的架構(gòu)設(shè)計(jì) 443
25.3.2
實(shí)現(xiàn)說(shuō)明 443
25.3.3
與俘兵相關(guān)的新增部分 445
25.3.4
使用適配器模式(Adapter)的優(yōu)點(diǎn) 450
25.4
適配器模式(Adapter)面對(duì)變化時(shí) 450
25.5
結(jié)論 451
第26章 加載速度的優(yōu)化代理模式(Proxy) 453
26.1
最后的系統(tǒng)優(yōu)化 453
26.2
代理模式(Proxy) 457
26.2.1
代理模式(Proxy)的定義 458
26.2.2
代理模式(Proxy)的說(shuō)明 458
26.2.3
代理模式(Proxy)的實(shí)現(xiàn)范例 459
26.3
使用代理模式(Proxy)測(cè)試和優(yōu)化加載速度 460
26.3.1
優(yōu)化加載速度的架構(gòu)設(shè)計(jì) 460
26.3.2
實(shí)現(xiàn)說(shuō)明 461
26.3.3
使用代理模式(Proxy)的優(yōu)點(diǎn) 464
26.3.4
實(shí)現(xiàn)代理模式(Proxy)時(shí)的注意事項(xiàng) 464
26.4
代理模式(Prory)面對(duì)變化時(shí) 466
26.5
結(jié)論 466
第8篇 未明確使用的模式
第27章 迭代器模式(Iterator)、原型模式(Prototype)和解釋器模式(Interpreter) 468
27.1
迭代器模式(Iterator) 468
27.2
原型模式(Prototype) 469
27.3
解釋器模式(Interpreter) 471
第28章 抽象工廠模式(Abstract
Factory) 472
28.1
抽象工廠模式(Abstract Factory)的定義 472
28.2
抽象工廠模式(Abstract Factory)的實(shí)現(xiàn) 473
28.3
可應(yīng)用抽象工廠模式的場(chǎng)合 476
參考文獻(xiàn) 477