设计模式:可复用面向对象软件的基础(典藏版)

设计模式:可复用面向对象软件的基础(典藏版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Erich Gamma)
2019-06
版次: 1
ISBN: 9787111618331
定价: 79.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 290页
字数: 282千字
  • 本书结合设计实例从面向对象的设计中精选出23个设计模式, 总结了面向对象设计中*有价值的经验, 并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、 表达清楚的软件设计模式, 这些模式在实用环境下特别有用。 本书适合大学计算机专业的学生、研究生及相关人员参考。 埃里克·伽玛(Erich Gamma)  在瑞士苏黎世大学获得计算机科学博士学位。他与Kent Beck合作开发了单元测试框架JUnit,并领导了Eclipse Java Development Tools项目。他还曾是IBM Rational Jazz项目的主要成员。2011年,Gamma以杰出工程师(Distinguished Engineer)的身份加入微软Visual Studio团队,领导微软位于瑞士苏黎世的实验室。

    理查德·赫尔姆(Richard Helm)  在澳大利亚墨尔本大学获得计算机科学博士学位,曾在IBM T. J. Watson担任研究员,并在澳大利亚开创了IBM面向对象技术研究分部。

    拉尔夫·约翰逊(Ralph Johnson)  在美国康奈尔大学获得计算机科学博士学位,伊利诺伊大学教授,在模式、重构等领域均有很高造诣。

    约翰·威利斯迪斯(John Vlissides)  在美国斯坦福大学获得计算机科学博士学位,是IBM T. J. Watson研究中心的研究员。 出版者的话

    赞誉

    序言

    前言

    读者指南

    第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
  • 内容简介:
    本书结合设计实例从面向对象的设计中精选出23个设计模式, 总结了面向对象设计中*有价值的经验, 并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、 表达清楚的软件设计模式, 这些模式在实用环境下特别有用。 本书适合大学计算机专业的学生、研究生及相关人员参考。
  • 作者简介:
    埃里克·伽玛(Erich Gamma)  在瑞士苏黎世大学获得计算机科学博士学位。他与Kent Beck合作开发了单元测试框架JUnit,并领导了Eclipse Java Development Tools项目。他还曾是IBM Rational Jazz项目的主要成员。2011年,Gamma以杰出工程师(Distinguished Engineer)的身份加入微软Visual Studio团队,领导微软位于瑞士苏黎世的实验室。

    理查德·赫尔姆(Richard Helm)  在澳大利亚墨尔本大学获得计算机科学博士学位,曾在IBM T. J. Watson担任研究员,并在澳大利亚开创了IBM面向对象技术研究分部。

    拉尔夫·约翰逊(Ralph Johnson)  在美国康奈尔大学获得计算机科学博士学位,伊利诺伊大学教授,在模式、重构等领域均有很高造诣。

    约翰·威利斯迪斯(John Vlissides)  在美国斯坦福大学获得计算机科学博士学位,是IBM T. J. Watson研究中心的研究员。
  • 目录:
    出版者的话

    赞誉

    序言

    前言

    读者指南

    第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
查看详情
12
您可能感兴趣 / 更多
设计模式:可复用面向对象软件的基础(典藏版)
设计师的材料观 [德]曼弗雷德·黑格
(德)曼弗雷德·黑格 (德)汉斯·德雷克斯勒 (德)马丁·泽默
设计模式:可复用面向对象软件的基础(典藏版)
设计与时代译丛-去未来化:一种新的设计哲学
托尼·弗赖
设计模式:可复用面向对象软件的基础(典藏版)
设计再出发:设计学科国际发展通报
陈正达
设计模式:可复用面向对象软件的基础(典藏版)
设计力
茶山
设计模式:可复用面向对象软件的基础(典藏版)
设计学考研唐师说
唐智
设计模式:可复用面向对象软件的基础(典藏版)
设计治理(“人工智能伦理、法律与治理”系列丛书)
邹其昌 等
设计模式:可复用面向对象软件的基础(典藏版)
设计形态学研究与应用(第二版)
邱松 等
设计模式:可复用面向对象软件的基础(典藏版)
设计有效的教学评价与评分系统(直指评价和评分的核心,从解释、设计到系统使用)
(美)罗伯特 · J.马扎诺著,段文静 任海涛译; 中青文 出品
设计模式:可复用面向对象软件的基础(典藏版)
设计的方法 [德]卡里·乔马卡
(德)卡里·乔马卡 (德)奥利弗·舒勒 (德)多特·库尔曼
设计模式:可复用面向对象软件的基础(典藏版)
设计师的设计日记(第2版)
南征
设计模式:可复用面向对象软件的基础(典藏版)
设计与学习
黄荣怀 刘德建
设计模式:可复用面向对象软件的基础(典藏版)
设计一所好幼儿园:幼儿园空间设计攻略 大夏书系
吴启建
系列丛书 / 更多
设计模式:可复用面向对象软件的基础(典藏版)
设计师的材料观 [德]曼弗雷德·黑格
(德)曼弗雷德·黑格 (德)汉斯·德雷克斯勒 (德)马丁·泽默
设计模式:可复用面向对象软件的基础(典藏版)
设计与时代译丛-去未来化:一种新的设计哲学
托尼·弗赖
设计模式:可复用面向对象软件的基础(典藏版)
设计再出发:设计学科国际发展通报
陈正达
设计模式:可复用面向对象软件的基础(典藏版)
设计力
茶山
设计模式:可复用面向对象软件的基础(典藏版)
设计学考研唐师说
唐智
设计模式:可复用面向对象软件的基础(典藏版)
设计治理(“人工智能伦理、法律与治理”系列丛书)
邹其昌 等
设计模式:可复用面向对象软件的基础(典藏版)
设计形态学研究与应用(第二版)
邱松 等
设计模式:可复用面向对象软件的基础(典藏版)
设计有效的教学评价与评分系统(直指评价和评分的核心,从解释、设计到系统使用)
(美)罗伯特 · J.马扎诺著,段文静 任海涛译; 中青文 出品
设计模式:可复用面向对象软件的基础(典藏版)
设计的方法 [德]卡里·乔马卡
(德)卡里·乔马卡 (德)奥利弗·舒勒 (德)多特·库尔曼
设计模式:可复用面向对象软件的基础(典藏版)
设计师的设计日记(第2版)
南征
设计模式:可复用面向对象软件的基础(典藏版)
设计与学习
黄荣怀 刘德建
设计模式:可复用面向对象软件的基础(典藏版)
设计一所好幼儿园:幼儿园空间设计攻略 大夏书系
吴启建
相关图书 / 更多
设计模式:可复用面向对象软件的基础(典藏版)
设计师的材料观 [德]曼弗雷德·黑格
(德)曼弗雷德·黑格 (德)汉斯·德雷克斯勒 (德)马丁·泽默
设计模式:可复用面向对象软件的基础(典藏版)
设计与时代译丛-去未来化:一种新的设计哲学
托尼·弗赖
设计模式:可复用面向对象软件的基础(典藏版)
设计再出发:设计学科国际发展通报
陈正达
设计模式:可复用面向对象软件的基础(典藏版)
设计力
茶山
设计模式:可复用面向对象软件的基础(典藏版)
设计学考研唐师说
唐智
设计模式:可复用面向对象软件的基础(典藏版)
设计治理(“人工智能伦理、法律与治理”系列丛书)
邹其昌 等
设计模式:可复用面向对象软件的基础(典藏版)
设计形态学研究与应用(第二版)
邱松 等
设计模式:可复用面向对象软件的基础(典藏版)
设计有效的教学评价与评分系统(直指评价和评分的核心,从解释、设计到系统使用)
(美)罗伯特 · J.马扎诺著,段文静 任海涛译; 中青文 出品
设计模式:可复用面向对象软件的基础(典藏版)
设计的方法 [德]卡里·乔马卡
(德)卡里·乔马卡 (德)奥利弗·舒勒 (德)多特·库尔曼
设计模式:可复用面向对象软件的基础(典藏版)
设计师的设计日记(第2版)
南征
设计模式:可复用面向对象软件的基础(典藏版)
设计与学习
黄荣怀 刘德建
设计模式:可复用面向对象软件的基础(典藏版)
设计一所好幼儿园:幼儿园空间设计攻略 大夏书系
吴启建