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

設(shè)計(jì)模式:Java語(yǔ)言中的應(yīng)用

設(shè)計(jì)模式:Java語(yǔ)言中的應(yīng)用

定 價(jià):¥48.00

作 者: 結(jié)城 潔 著,博碩文化 譯;博碩文化譯
出版社: 中國(guó)鐵道工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: Java

ISBN: 9787113064563 出版時(shí)間: 2005-06-01 包裝: 膠版紙
開(kāi)本: 小16開(kāi) 頁(yè)數(shù): 436 字?jǐn)?shù):  

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

  本書(shū)是一本Design Pattern的入門(mén)書(shū),書(shū)中以淺顯易懂的語(yǔ)言逐一說(shuō)明了GoF的23個(gè)Design Pattern,讓初次學(xué)習(xí)面向?qū)ο蟮淖x者也能立即掌握。在本書(shū)中不會(huì)看到死板的理論型文章,以Java語(yǔ)言寫(xiě)出書(shū)中各Pattern的范例程序,可以直接在計(jì)算機(jī)上運(yùn)行,便于讀者深入體會(huì)和應(yīng)用。學(xué)習(xí)設(shè)計(jì)Pattern不僅是為了將來(lái)做準(zhǔn)備,而且有助于從另一個(gè)全新角度重新審視我們平時(shí)編寫(xiě)的程序,提高軟件的復(fù)用性、擴(kuò)展性,這才是設(shè)計(jì)Pattern的真正意義,也是本書(shū)理論與實(shí)例相結(jié)合的目的。

作者簡(jiǎn)介

暫缺《設(shè)計(jì)模式:Java語(yǔ)言中的應(yīng)用》作者簡(jiǎn)介

圖書(shū)目錄

第0章 漫談UML
UML
類(lèi)圖
類(lèi)和層次的關(guān)系
接口與實(shí)現(xiàn)
聚合
存取控制
類(lèi)間的關(guān)聯(lián)性
順序圖
處理流程和對(duì)象間的協(xié)調(diào)
開(kāi)始學(xué)習(xí)Design Patterns之前
Design Patterns不等于類(lèi)函數(shù)庫(kù)
不過(guò),類(lèi)函數(shù)庫(kù)中確實(shí)用到Design Patterns
不要認(rèn)為程序范例已經(jīng)是完成品
圖不能只是看,要仔細(xì)解讀
自己仔細(xì)琢磨范例
了解角色功能——白雪公主給誰(shuí)演
第1部分 先熟悉設(shè)計(jì)Pattern
第1章Iterator——迭代器
Iterator Pattern
程序示例
Aggregate接口
Iterator接口
Book類(lèi)
BookShelf類(lèi)
BookShelflterator類(lèi)
Main類(lèi)
Iterator Pattern的所有參與者
擴(kuò)展自我視野的提示
無(wú)論實(shí)現(xiàn)結(jié)果如何,都能使用Iterator
抽象類(lèi)、接口實(shí)在很難搞
Aggregate與Iterator的對(duì)應(yīng)
“下一個(gè)”容易搞錯(cuò)
“最后一個(gè)"也容易錯(cuò)
一個(gè)以上的Iterator
各種iterator
不需要deletelterator
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第2章 Adaptel(適配器)——換個(gè)包裝再度利用
Adapter Pattern
程序示例(1)(繼承)
Banner類(lèi)
Print接口
PrintBanner類(lèi)
Main類(lèi)
程序示例(2)(委托)
Print類(lèi)
PrintBanner類(lèi)
Adapter Pattern的所有參與者
擴(kuò)展自我視野的提示
什么時(shí)候用
就算沒(méi)有源程序也無(wú)妨
版本更新與兼容性
類(lèi)差別太大
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第2部分 萬(wàn)事交給子類(lèi)
第3章TempIate Method(模板方法)——實(shí)際處理就交給子類(lèi)
Template Method Pattern
何謂模板(Template)
Template Method Pattern是什么
程序示例
AbstractDisplay類(lèi)
CharDisplay類(lèi)
StringDisplay類(lèi)
Main類(lèi)
Template Method Pattern的所有參與者
擴(kuò)展自我視野的提示
邏輯可共享
父類(lèi)跟子類(lèi)的連續(xù)性
子類(lèi)應(yīng)視同父類(lèi)
相關(guān)Pattern
進(jìn)階說(shuō)明:類(lèi)層次與抽象類(lèi)
父類(lèi)對(duì)子類(lèi)的要求
抽象類(lèi)的意義
父類(lèi)跟子類(lèi)之間的協(xié)調(diào)
重點(diǎn)回顧
練習(xí)題
第4章 Factory Method(工廠方法)
建立對(duì)象實(shí)例交給子類(lèi)
Factory Method Pattern
程序示例
Product類(lèi)
Factory類(lèi)
IDCard類(lèi)
IDCardFactory類(lèi)
Main類(lèi)
Factory Method Pattern的所有參與者
擴(kuò)展自我視野的提示
框架與內(nèi)容
產(chǎn)生對(duì)象實(shí)例——方法的實(shí)現(xiàn)方式
Pattern利用與程序開(kāi)發(fā)工程師之間的溝通
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第3部分 建立對(duì)象實(shí)例
第5章 Singleton(單件)——惟一的對(duì)象實(shí)例
Singleton Pattern
程序示例
Singleton類(lèi)
Main類(lèi)
Singleton Pattern的所有參與者
擴(kuò)展自我視野的提示
設(shè)限的理由
惟一對(duì)象實(shí)例產(chǎn)生的時(shí)間點(diǎn)
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第6章 Prototype(原型)——復(fù)制建立對(duì)象實(shí)例
Prototype Pattern
程序示例
Product接口
Manager類(lèi)
MessageBox類(lèi)
UnderlinePen類(lèi)
Main類(lèi)
Prototype Pattern的所有參與者
擴(kuò)展自我視野的提示
難道真的不能利用類(lèi)來(lái)建立對(duì)象實(shí)例嗎
類(lèi)名是一種束縛
相關(guān)Pattern
深入說(shuō)明:clone方法和java.lang.Cloneable接口
Java語(yǔ)言的clone
Clone方法是在哪里定義
Cloneable所要求的方法是什么
Clone方法做的是淺拷貝(shallow copy)
重點(diǎn)回顧
練習(xí)題
第7章 Buildel(生成器)——組合復(fù)雜的對(duì)象實(shí)例
Builder PaRem
程序示例
Builder類(lèi)
Director類(lèi)
TextBuilder類(lèi)
HTMLBuilder類(lèi)
Main類(lèi)
Builder PaRem的所有參與者
相關(guān)Pattern
擴(kuò)展自我視野的提示
誰(shuí)知道哪個(gè)部分
在設(shè)計(jì)時(shí)該決定哪些事、又不該決定哪些事
源代碼的解讀與修改
重點(diǎn)回顧
練習(xí)題
第8章 Abstract Factory(抽象工廠)——把相關(guān)零件組合成產(chǎn)品
Abstract Factory Pattern
程序示例
抽象零件:Item類(lèi)
抽象零件:Link類(lèi)
抽象零件:Tray類(lèi)
抽象產(chǎn)品:Page類(lèi)
抽象工廠:Factory類(lèi)
利用工廠把零件組合成產(chǎn)品:Main類(lèi)
具體工廠:ListFactory類(lèi)
具體零件:ListLink類(lèi)
具體零件:ListTray類(lèi)
具體產(chǎn)品:ListPage類(lèi)
在程序示例中新增其他的具體工廠
具體工廠:TableFactory類(lèi)
具體零件:TableLink類(lèi)
具體零件:TableTray類(lèi)
具體產(chǎn)品:TablePage類(lèi)
Abstract Factory Pattern的所有參與者
擴(kuò)展自我視野的提示
新增具體工廠尤如探囊取物
新增零件很有難度
相關(guān)Pattern
深入說(shuō)明:各種建立對(duì)象實(shí)例的手段
重點(diǎn)回顧
練習(xí)題
第4部分切割性思考
第9章 Bridge(橋接)——分成功能層次和實(shí)現(xiàn)層次
Bridge Pattern
類(lèi)層次的兩大責(zé)任
程序示例
功能的類(lèi)層次:Display類(lèi)
功能的類(lèi)層次:CountDisplay類(lèi)
實(shí)現(xiàn)的類(lèi)層次:DisplayImpl類(lèi)
實(shí)現(xiàn)的類(lèi)層次:StringDisplaylmpl類(lèi)
Main類(lèi)
Bridge Pattern的所有參與者
擴(kuò)展自我視野的提示
先區(qū)分再擴(kuò)充就很輕松
繼承是生死不離、委托是瀟灑分手
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第10章 Strategy(策略)——把算法整個(gè)換掉
Strategy Pattern
程序示例
Hand類(lèi)
Strategy接口
WinningStrategy類(lèi)
ProbStrategy類(lèi)
Player類(lèi)
Main類(lèi)
Strategy Pattern的所有參與者
擴(kuò)展自我視野的提示
為什么要特地建立Strategy參與者
執(zhí)行時(shí)也可切換
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第5部分 一視同仁
第11章 Comp05ite(組成)——對(duì)容器和內(nèi)容一視同仁
Composite Pattern
程序示例
Entry類(lèi)
File類(lèi)
Directory類(lèi)
FileTreatmentException類(lèi)
Main類(lèi)
Composite Pattern的所有參與者
擴(kuò)展自我視野的提示
單一復(fù)數(shù)的一視同仁
add放在哪里
遞歸結(jié)構(gòu)隨時(shí)都會(huì)出現(xiàn)
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第12章 Decorator(裝飾)——對(duì)裝飾和內(nèi)容一視同仁
Decorator Pattern
程序示例
Display類(lèi)
StringDisplay類(lèi)
Border類(lèi)
SideBorder類(lèi)
FuUBorder類(lèi)
Main類(lèi)
Decorator Pattern的所有參與者
擴(kuò)展自我視野的提示
可穿透的接口(API)
可新增功能但內(nèi)容不變
可新增動(dòng)態(tài)功能
即使只有簡(jiǎn)單的種類(lèi)規(guī)劃,也可增加多種功能
java.io包和Decorator Pattern
小類(lèi)多了一點(diǎn)
相關(guān)Pattern
深入說(shuō)明:繼承和委托的一視同仁
繼承——對(duì)子類(lèi)和父類(lèi)一視同仁
委托——對(duì)自己和委托對(duì)象一視同仁
重點(diǎn)回顧
練習(xí)題
第6部分在結(jié)構(gòu)中穿梭來(lái)去
第13章 Visitor(訪問(wèn)者)——在結(jié)構(gòu)中穿梭還同時(shí)做事
Visitor Pattern
程序示例
Visitor類(lèi)
Acceptor接口
Entry類(lèi)
File類(lèi)
Directory類(lèi)
ListVisitor類(lèi)
FileTreatmentException類(lèi)
Main類(lèi)
Visitor和Acceptor兩邊彼此調(diào)用
Visitor Pattern的所有參與者
擴(kuò)展自我視野的提示
雙重調(diào)度(double dispatch)
為什么要搞得這么復(fù)雜
The Open-Closed Principle——擴(kuò)充時(shí)開(kāi)放、修改時(shí)關(guān)閉
新增ConcreteVisitor參與者?簡(jiǎn)單
新增ConcreteAcceptor參與者?復(fù)雜
Visitor要怎樣做才能進(jìn)行處理
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第14章 Chain of Respons-biIity(職責(zé)鏈)——責(zé)任轉(zhuǎn)送
Chain of Responsibility責(zé)任轉(zhuǎn)送
程序示例
Trouble類(lèi)
Support類(lèi)
NoSupport類(lèi)
LimitSupport類(lèi)
OddSupport類(lèi)
SpecialSupport類(lèi)
Main類(lèi)
Chain of Responsibility Pattern的所有參與者
擴(kuò)展自我視野的提示
讓要求跟處理要求兩者間的結(jié)合關(guān)系不會(huì)太緊密
機(jī)動(dòng)性改變連鎖形態(tài)
能更專(zhuān)心在自己的工作崗位上
轉(zhuǎn)送會(huì)不會(huì)導(dǎo)致處理變慢
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第7部分 簡(jiǎn)單最好
第15章 Facade(外觀)——單一窗口
Facade單一窗口
程序示例
Database類(lèi)
HtmlWriter類(lèi)
PageMaker類(lèi)
Main類(lèi)
Facade Pattern的所有參與者
擴(kuò)展自我視野的提示
Facade參與者到底在做什么事
Facade Pattern的遞歸應(yīng)用
程序設(shè)計(jì)師拒絕使用Facade的理由——敏感的心理因素
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第16章 Mediator(中介者)——只要面對(duì)一個(gè)顧問(wèn)
IvleQlator rattern
程序示例
Mediator接口
Colleague接口
ColleagueButton類(lèi)
ColleagueTextField類(lèi)
ColleagueCheckbox類(lèi)
LoginFrame類(lèi)
Main類(lèi)
Mediator Pattern的所有參與者
擴(kuò)展自我視野的提示
當(dāng)分散變成災(zāi)難時(shí)
通訊路徑數(shù)量暴增
哪些可以再利用
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第8部分管理狀態(tài)
第17章 Observer(觀察者)——通知狀態(tài)變化
Observer Pattern
程序示例
Observer接口
NumberGenerator類(lèi)
RandomNumberGenerator類(lèi)
DigitObserver類(lèi)
GraphObserver類(lèi)
Main類(lèi)
Observer Pattern的所有參與者
擴(kuò)展自我視野的提示
這里也可對(duì)換
Observer的順序
Observer的行為影響Subiect時(shí)
如何處理更新的提示
“通知”的意義重于“觀察”
Model/View/Controller(MVC)
補(bǔ)充說(shuō)明:java.util.Observer接口
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第18章 Memento(備忘錄)——存儲(chǔ)狀態(tài)
Memento Pattern
程序示例
Memento類(lèi)
Gamer類(lèi)
Main類(lèi)
Memento Pattern的所有參與者
擴(kuò)展自我視野的提示
2種接口(API)與存取控制
Memento可以有幾個(gè)
Memento有沒(méi)有使用期限
Caretaker參與者跟Originator參與者區(qū)隔使用的意義
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第19章 State(狀態(tài))——以類(lèi)表示狀態(tài)
State Pattern
程序示例
金庫(kù)保安系統(tǒng)
不使用State Pattern的虛擬程序代碼
使用State Pattern的虛擬程序代碼
State接口
DayState類(lèi)
NightState類(lèi)
Context接口
SafeFrame類(lèi)
Main類(lèi)
State Pattern的所有參與者
擴(kuò)展自我視野的提示
分割統(tǒng)合
有此狀態(tài)才會(huì)有的處理
狀態(tài)遷移該由誰(shuí)管
不會(huì)有自我矛盾
新增狀態(tài)易如反掌
變化萬(wàn)千的對(duì)象實(shí)例
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第9部分 精簡(jiǎn)不浪費(fèi)
第20章 Flyweight(享元)——有相同的部分就共享
采取精簡(jiǎn)政策
Flyweight Pattern
程序示例
BigChar類(lèi)
BigCharFactory類(lèi)
BigString類(lèi)
Main類(lèi)
Flyweight Pattern的所有參與者
擴(kuò)展自我視野的提示
影響會(huì)傳到所有相關(guān)位置
Intrinsic和extrinsic
管理中的對(duì)象實(shí)例不會(huì)被視為垃圾收集
非內(nèi)存部分的記錄
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第21章 Proxy(代理)——要用再建立
Proxy Pattern
程序示例
Printer類(lèi)
Printable接口
PrinterProxy類(lèi)
Main類(lèi)
Proxy Pattern的所有參與者
擴(kuò)展自我視野的提示
利用代理提高處理速度
不能讓代理和本人合二為一嗎
代理和委托
穿透性
HTTP proxy
各種Proxy
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第10部分 用類(lèi)來(lái)表示
第22章 Command(命令)——將命令寫(xiě)成類(lèi)
Command Pattern
程序示例
Command接口
MacroCommand類(lèi)
DrawCommand類(lèi)
Drawable接口
DrawCanvas類(lèi)
Main類(lèi)
Command Pattern的所有參與者
擴(kuò)展自我視野的提示
命令應(yīng)該要有的信息是什么
存儲(chǔ)記錄
轉(zhuǎn)換器
相關(guān)Pattern
重點(diǎn)回顧
練習(xí)題
第23章 Interpreter(解釋器)——以類(lèi)來(lái)表達(dá)語(yǔ)法規(guī)則
Interpreter Pattern
迷你語(yǔ)言
迷你語(yǔ)言的命令
迷你程序示例
迷你語(yǔ)言的語(yǔ)法
終點(diǎn)表達(dá)式與非終點(diǎn)表達(dá)式
程序示例
Node類(lèi)
ProgramNode類(lèi)
CommandListNode類(lèi)
CommandNode類(lèi)
RepeatCommandNode類(lèi)
PrimitiveCommandNode類(lèi)
Context類(lèi)
ParseException類(lèi)
Main類(lèi)
Interpreter Pattern的所有參與者
擴(kuò)展自我視野的提示
還有其他不同的迷你語(yǔ)言嗎
略過(guò)/讀入
相關(guān)Pattern
重點(diǎn)回顧和最后的叮嚀
練習(xí)題
附錄
附錄A 練習(xí)題的解答
附錄B GoF的設(shè)計(jì)Pattern分類(lèi)

本目錄推薦

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