图书介绍

设计模式-Java语言中的应用PDF|Epub|txt|kindle电子书版本网盘下载

设计模式-Java语言中的应用
  • 结城浩著;博硕文化译 著
  • 出版社: 北京:中国铁道出版社
  • ISBN:7113064566
  • 出版时间:2005
  • 标注页数:436页
  • 文件大小:18MB
  • 文件页数:456页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

设计模式-Java语言中的应用PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第0章 漫谈UML1

UML2

类图2

类和层次的关系2

接口与实现3

聚合4

存取控制5

类间的关联性5

顺序图6

处理流程和对象间的协调6

开始学习Design Patterns之前7

Design Patterns不等于类函数库7

不要认为程序范例已经是完成品8

不过,类函数库中确实用到Design Patterns8

图不能只是看,要仔细解读9

自己仔细琢磨范例9

了解角色功能——白雪公主给谁演9

第1部分 先熟悉设计Pattern11

第1章 Iterator——迭代器11

Iterator Pattern12

程序示例12

Aggregate接口13

Iterator接口14

Book类15

BookShelf类15

BookShelfIterator类16

Main类17

Iterator Pattern的所有参与者18

无论实现结果如何,都能使用Iterator19

扩展自我视野的提示19

抽象类、接口实在很难搞20

Aggregate与Iterator的对应20

“下一个”容易搞错21

“最后一个”也容易错21

一个以上的Iterator21

各种iterator21

不需要deleteIterator21

相关Pattern22

重点回顾22

练习题22

第2章 Adapter(适配器)——换个包装再度利用23

程序示例(1)(继承)24

Adapter Pattern24

Banner类25

Print接口26

PrintBanner类26

Main类27

程序示例(2)(委托)27

Print类28

PrintBanner类29

Adapter Pattern的所有参与者29

扩展自我视野的提示30

什么时候用30

就算没有源程序也无妨31

版本更新与兼容性31

重点回顾32

相关Pattern32

类差别太大32

练习题33

第2部分 万事交给子类35

第3章 Template Method(模板方法)——实际处理就交给子类35

Template Method Pattern36

何谓模板(Template)36

Template Method Pattern是什么36

程序示例37

AbstractDisplay类38

CharDisplay类38

StringDisplay类39

Main类41

逻辑可共享42

扩展自我视野的提示42

Template Method Pattern的所有参与者42

父类跟子类的连续性43

子类应视同父类43

相关Pattern43

进阶说明:类层次与抽象类44

父类对子类的要求44

抽象类的意义44

父类跟子类之间的协调44

重点回顾45

练习题45

第4章 Factory Method(工厂方法)——建立对象实例交给子类47

Factory Method Pattern48

程序示例48

Factory类49

Product类49

IDCard类50

IDCardFactory类51

Main类51

Factory Method Pattern的所有参与者52

扩展自我视野的提示53

框架与内容53

产生对象实例——方法的实现方式54

Pattern利用与程序开发工程师之间的沟通55

相关Pattern55

重点回顾56

练习题56

第3部分 建立对象实例57

第5章 Singleton(单件)——惟一的对象实例57

程序示例58

Singleton Pattern58

Singleton类59

Main类59

Singleton Pattern的所有参与者60

扩展自我视野的提示61

设限的理由61

惟一对象实例产生的时间点61

相关Pattern61

重点回顾61

练习题62

第6章 Prototype(原型)——复制建立对象实例63

Prototype Pattern64

程序示例65

Manager类66

Product接口66

MessageBox类67

UnderlinePen类68

Main类69

Prototype Pattern的所有参与者70

扩展自我视野的提示71

难道真的不能利用类来建立对象实例吗71

类名是一种束缚72

相关Pattern72

深入说明:clone方法和java.lang.Cloneable接口73

Java语言的clone73

clone方法是在哪里定义73

Cloneable所要求的方法是什么73

练习题74

clone方法做的是浅拷贝(shallow copy)74

重点回顾74

第7章 Builder(生成器)——组合复杂的对象实例75

Builder Pattern76

程序示例76

Builder类77

Director类77

TextBuilder类78

HTMLBuilder类79

Main类80

Builder Pattern的所有参与者83

相关Pattern84

在设计时该决定哪些事、又不该决定哪些事85

谁知道哪个部分85

扩展自我视野的提示85

源代码的解读与修改86

重点回顾86

练习题86

第8章 Abstract Factory(抽象工厂)——把相关零件组合成产品89

Abstract Factory Pattern90

程序示例90

抽象零件:Item类94

抽象零件:Link类95

抽象零件:Tray类95

抽象产品:Page类96

抽象工厂:Factory类97

利用工厂把零件组合成产品:Main类98

具体零件:ListLink类100

具体工厂:ListFactory类100

具体零件:ListTray类101

具体产品:ListPage类102

在程序示例中新增其他的具体工厂103

具体工厂:TableFactory类105

具体零件:TableLink类106

具体零件:TableTray类106

具体产品:TablePage类107

Abstract Factory Pattern的所有参与者108

扩展自我视野的提示110

新增具体工厂尤如探囊取物110

新增零件很有难度110

相关Pattern110

深入说明:各种建立对象实例的手段111

练习题112

重点回顾112

第4部分 切割性思考113

第9章 Bridge(桥接)——分成功能层次和实现层次113

Bridge Pattern114

类层次的两大责任114

程序示例116

功能的类层次:Display类116

功能的类层次:CountDisplay类117

实现的类层次:DisplayImpl类118

实现的类层次:StringDisplayImpl类118

Main类119

Bridge Pattern的所有参与者121

扩展自我视野的提示121

先区分再扩充就很轻松121

继承是生死不离、委托是潇洒分手122

相关Pattern123

重点回顾123

练习题123

第10章 Strategy(策略)——把算法整个换掉125

Strategy Pattern126

程序示例126

Hand类127

Strategy接口129

WinningStrategy类129

ProbStrategy类130

Player类132

Main类133

Strategy Pattern的所有参与者135

执行时也可切换136

为什么要特地建立Strategy参与者136

扩展自我视野的提示136

相关Pattern137

重点回顾137

练习题137

第5部分 一视同仁141

第11章 Composite(组成)——对容器和内容一视同仁141

Composite Pattern142

程序示例142

Entry类143

File类144

Directory类145

FileTreatmentException类147

Main类147

单、复数的一视同仁150

扩展自我视野的提示150

Composite Pattern的所有参与者150

add放在哪里151

递归结构随时都会出现152

相关Pattern152

重点回顾152

练习题152

第12章 Decorator(装饰)——对装饰和内容一视同仁155

Decorator Pattern156

程序示例156

Display类157

StringDisplay类158

Border类159

SideBorder类159

FullBorder类161

Main类162

Decorator Pattern的所有参与者163

扩展自我视野的提示164

可穿透的接口(API)164

可新增功能但内容不变165

可新增动态功能165

即使只有简单的种类规划,也可增加多种功能165

java.io包和Decorator Pattern166

小类多了一点167

相关Pattern167

深入说明:继承和委托的一视同仁167

继承——对子类和父类一视同仁167

委托——对自己和委托对象一视同仁168

重点回顾169

练习题170

第6部分 在结构中穿梭来去173

第13章 Visitor(访问者)——在结构中穿梭还同时做事173

Visitor Pattern174

程序示例174

Visitor类174

Acceptor接口176

Entry类176

File类177

Directory类178

ListVisitor类179

FileTreatmentException类180

Main类180

Visitor和Acceptor两边彼此调用182

Visitor Pattern的所有参与者183

双重调度(double dispatch)184

扩展自我视野的提示184

为什么要搞得这么复杂185

The Open-Closed Principle——扩充时开放、修改时关闭185

新增ConcreteVisitor参与者?简单186

新增ConcreteAcceptor参与者?复杂186

Visitor要怎样做才能进行处理186

相关Pattern186

重点回顾187

练习题187

第14章 Chain of Responsibility(职责链)——责任转送191

Chain of Responsibility责任转送192

程序示例192

Support类193

Trouble类193

NoSupport类195

LimitSupport类195

OddSupport类196

SpecialSupport类196

Main类197

Chain of Responsibility Pattern的所有参与者198

扩展自我视野的提示199

让要求跟处理要求两者间的结合关系不会太紧密199

机动性改变连锁形态200

能更专心在自己的工作岗位上200

转送会不会导致处理变慢200

重点回顾201

练习题201

相关Pattern201

第7部分 简单最好203

第15章 Facade(外观)——单一窗口203

Facade单一窗口204

程序示例204

Database类206

HtmlWriter类206

PageMaker类208

Main类209

Facade Pattern的所有参与者210

扩展自我视野的提示211

Facade参与者到底在做什么事211

Facade Pattern的递归应用211

程序设计师拒绝使用Facade的理由——敏感的心理因素211

练习题212

相关Pattern212

重点回顾212

第16章 Mediator(中介者)——只要面对一个顾问215

Mediator Pattern216

程序示例216

Mediator接口220

Colleague接口220

ColleagueButton类221

ColleagueTextField类222

ColleagueCheckbox类223

LoginFrame类224

Main类227

Mediator Pattern的所有参与者227

哪些可以再利用229

通讯路径数量暴增229

扩展自我视野的提示229

当分散变成灾难时229

相关Pattern230

重点回顾230

练习题230

第8部分 管理状态231

第17章 Observer(观察者)——通知状态变化231

Observer Pattern232

程序示例232

Observer接口232

NumberGenerator类233

RandomNumberGenerator类234

DigitObserver类235

GraphObserver类235

Main类236

Observer Pattern的所有参与者237

扩展自我视野的提示238

这里也可对换238

Observer的顺序239

Observer的行为影响Subject时239

如何处理更新的提示239

“通知”的意义重于“观察”240

Model/View/Controller(MVC)240

补充说明:java.util.Observer接口241

相关Pattern241

重点回顾241

练习题242

第18章 Memento(备忘录)——存储状态243

程序示例244

Memento Pattern244

Memento类245

Gamer类246

Main类248

Memento Pattern的所有参与者252

扩展自我视野的提示253

2种接口(API)与存取控制253

Memento可以有几个255

Memento有没有使用期限255

Caretaker参与者跟Originator参与者区隔使用的意义255

相关Pattern255

重点回顾256

练习题256

第19章 State(状态)——以类表示状态259

金库保安系统260

State Pattern260

程序示例260

不使用State Pattern的虚拟程序代码261

使用State Pattern的虚拟程序代码262

State接口263

DayState类265

NightState类266

Context接口267

SafeFrame类267

Main类271

State Pattern的所有参与者272

扩展自我视野的提示273

分割统合273

状态迁移该由谁管274

有此状态才会有的处理274

新增状态易如反掌275

不会有自我矛盾275

变化万千的对象实例276

相关Pattern276

重点回顾277

练习题277

第9部分 精简不浪费279

第20章 Flyweight(享元)——有相同的部分就共享,采取精简政策279

Flyweight Pattern280

程序示例280

BigChar类285

BigCharFactory类286

BigString类287

Flyweight Pattern的所有参与者289

Main类289

扩展自我视野的提示290

影响会传到所有相关位置290

Intrinsic和extrinsic291

管理中的对象实例不会被视为垃圾收集291

非内存部分的记录292

相关Pattern293

重点回顾293

练习题293

第21章 Proxy(代理)——要用再建立295

Proxy Pattern296

程序示例296

Printer类298

PrinterProxy类299

Printable接口299

Main类301

Proxy Pattern的所有参与者301

扩展自我视野的提示302

利用代理提高处理速度302

不能让代理和本人合二为一吗303

代理和委托303

穿透性303

HTTP proxy304

各种Proxy304

相关Pattern304

重点回顾305

练习题305

第22章 Command(命令)——将命令写成类307

第10部分 用类来表示307

Command Pattern308

程序示例308

Command接口309

MacroCommand类310

DrawCommand类311

Drawable接口312

DrawCanvas类312

Main类314

Command Pattern的所有参与者317

扩展自我视野的提示319

命令应该要有的信息是什么319

存储记录319

转换器320

练习题322

重点回顾322

相关Pattern322

第23章 Interpreter(解释器)——以类来表达语法规则325

Interpreter Pattern326

迷你语言326

迷你语言的命令326

迷你程序示例327

迷你语言的语法330

终点表达式与非终点表达式331

程序示例331

Node类332

ProgramNode类333

CommandListNode类334

CommandNode类335

RepeatCommandNode类336

PrimitiveCommandNode类337

Context类337

ParseException类339

Main类339

Interpreter Pattern的所有参与者341

扩展自我视野的提示342

还有其他不同的迷你语言吗342

略过/读入343

相关Pattern343

重点回顾和最后的叮咛343

练习题344

附录345

附录A 练习题的解答345

附录B GoF的设计Pattern分类435

热门推荐