好书推荐 好书速递 排行榜 读书文摘

设计模式:可复用面向对象软件的基础

设计模式:可复用面向对象软件的基础
作者:[美] Erich Gamma
译者:李英军 / 马晓星 / 蔡敏 / 刘建中
出版社:机械工业出版社
出版年:2019-05
ISBN:9787111618331
行业:计算机
浏览数:38

内容简介

本书结合设计实例从面向对象的设计中精选出23个设计模式, 总结了面向对象设计中*有价值的经验, 并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、 表达清楚的软件设计模式, 这些模式在实用环境下特别有用。 本书适合大学计算机专业的学生、研究生及相关人员参考。

......(更多)

作者简介

四位作者均是国际公认的面向对象软件领域的专家。

Erich Gamma博士是瑞士苏黎士国际面向对象技术软件中心的技术主管。

Richard Helm博士是澳大利亚悉尼IBM顾问集团公司面向对象技术公司的成员。

Ralph Johnson博士是Urbana-Champaign伊利诺大学计算机科学系成员。

John Vlissides博士是位于纽约Hawthorne的IBN托马斯J.沃森研究中心的研究人员。

......(更多)

目录

出版者的话

赞誉

序言

前言

读者指南

第1章引言┊1

1.1 什么是设计模式┊3

1.2 Smalltalk MVC中的设计模式┊4

1.3 描述设计模式┊6

1.4 设计模式的编目┊7

1.5 组织编目┊8

1.6 设计模式怎样解决设计问题┊10

1.6.1 寻找合适的对象┊10

1.6.2 决定对象的粒度┊11

1.6.3 指定对象接口┊11

1.6.4 描述对象的实现┊12

1.6.5 运用复用机制┊15

1.6.6 关联运行时和编译时的结构┊18

1.6.7 设计应支持变化┊19

1.7 怎样选择设计模式┊22

1.8 怎样使用设计模式┊24

第2章实例研究:设计一个文档编辑器┊25

2.1 设计问题┊27

2.2 文档结构┊27

2.2.1 递归组合┊28

2.2.2 图元┊29

2.2.3 组合模式┊31

2.3 格式化┊31

2.3.1 封装格式化算法┊31

2.3.2 Compositor和Composition┊32

2.3.3 策略模式┊33

2.4 修饰用户界面┊34

2.4.1 透明围栏┊34

2.4.2 Monoglyph┊35

2.4.3 Decorator模式┊36

2.5 支持多种视感标准┊37

2.5.1 对象创建的抽象┊37

2.5.2 工厂类和产品类┊38

2.5.3 Abstract Factory 模式┊40

2.6 支持多种窗口系统┊40

2.6.1 是否可以使用Abstract Factory模式┊40

2.6.2 封装实现依赖关系┊41

2.6.3 Window和WindowImp┊43

2.6.4 Bridge模式┊46

2.7 用户操作┊46

2.7.1 封装一个请求┊47

2.7.2 Command类及其子类┊47

2.7.3 撤销和重做┊48

2.7.4 命令历史记录┊49

2.7.5 Command模式┊50

2.8 拼写检查和断字处理┊50

2.8.1 访问分散的信息┊51

2.8.2 封装访问和遍历┊51

2.8.3 Iterator类及其子类┊52

2.8.4 Iterator模式┊55

2.8.5 遍历和遍历过程中的动作┊55

2.8.6 封装分析┊56

2.8.7 Visitor类及其子类┊59

2.8.8 Visitor模式┊60

2.9 小结┊60

第3章创建型模式┊62

3.1 Abstract Factory(抽象工厂)—对象创建型模式┊66

3.2 Builder(生成器)—对象创建型模式┊74

3.3 Factory Method(工厂方法)—对象创建型模式┊81

3.4 Prototype(原型)—对象创建型模式┊89

3.5 Singleton(单件)—对象创建型模式┊96

3.6 创建型模式的讨论┊102

第4章结构型模式┊104

4.1 Adapter(适配器)—类对象结构型模式┊106

4.2 Bridge(桥接)—对象结构型模式┊115

4.3 Composite(组合)—对象结构型模式┊123

4.4 Decorator(装饰)—对象结构型模式┊132

4.5 Facade(外观)—对象结构型模式┊┊139

4.6 Flyweight(享元)—对象结构型模式┊146

4.7 Proxy(代理)—对象结构型模式┊155

4.8 结构型模式的讨论 ┊164

4.8.1 Adapter与Bridge┊164

4.8.2 Composite、Decorator与Proxy┊164

第5章行为型模式┊166

5.1 Chain of Responsibility(职责链)—对象行为型模式┊167

5.2 Command(命令)—对象行为型模式┊175

5.3 Interpreter(解释器)—类行为型模式┊183

5.4 Iterator(迭代器)—对象行为型模式┊193

5.5  Mediator(中介者)—对象行为型模式┊205

5.6 Memento(备忘录)—对象行为型模式┊212

5.7 Observer(观察者)—对象行为型模式┊219

5.8 State(状态)—对象行为型模式┊227

5.9 Strategy(策略)—对象行为型模式┊234

5.10 Template Method(模板方法)— 类行为型模式┊242

5.11 Visitor(访问者)—对象行为型 模式┊246

5.12 行为型模式的讨论┊256

5.12.1 封装变化┊256

5.12.2 对象作为参数┊257

5.12.3 通信应该被封装还是被分布┊257

5.12.4 对发送者和接收者解耦┊258

5.12.5 总结┊260

第6章结论┊261

6.1 设计模式将带来什么┊262

6.1.1 一套通用的设计词汇┊262

6.1.2 书写文档和学习的辅助手段┊263

6.1.3 现有方法的一种补充┊263

6.1.4 重构的目标┊264

6.2 本书简史┊265

6.3 模式界┊266

6.3.1 Alexander的模式语言┊266

6.3.2 软件中的模式┊267

6.4 邀请参与┊267

6.5 临别感想┊268

附录A词汇表┊269

附录B图示符号指南┊273

附录 C基本类┊277

参考文献┊284

......(更多)

读书文摘

将系统分解成对象集合。因为要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、演化、复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的。

类型(type) 是用来标识特定接口的一个名字。

......(更多)

猜你喜欢

点击查看