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

设计模式
9.0
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
出版社: 机械工业出版社
2007-01
版次: 1
ISBN: 9787111075752
定价: 35.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 254页
原版书名: Design Patterns: Elements of Reusable Object-Oriented Software
  •   《设计模式:可复用面向对象软件基础》并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”继承与“实现”继承的关系时,你应该对这些概念了然于胸,而不必迫不及待地翻阅手头的字典。
      另外,这也不是一篇高级专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从一开始就采用的设计方案。它们反映了不为人知的重新设计和重新编码的成果,而这些都来自软件开发者为了设计出灵活可复用的软件而长时间进行的艰苦努力。设计模式捕获了这些解决方案,并用简洁易用的方式表达出来。
      设计模式并不要求使用独特的语言特性,也不采用那些足以使你的朋友或老板大吃一惊的神奇的编程技巧。所有的模式均可以用标准的面向对象语言实现,这也许有时会比特殊的解法多费一些功夫,但是为了增加软件的灵活性和可复用性,多做些工作是值得的。
      一旦你理解了设计模式并且有了一种“Aha!”(而不是“Huh?”)的应用经验和体验后,你将用一种非同寻常的方式思考面向对象设计。你将拥有一种深刻的洞察力,以帮助你设计出更加灵活的、模块化的、可复用的和易理解的软件—这也是你为何着迷于面向对象技术的源动力,不是吗?
      当然还有一些提示和鼓励:第一次阅读此书时你可能不会完全理解它,但不必着急,我们在起初编写这本书时也没有完全理解它们!请记住,这不是一本读完一遍就可以束之高阁的书。我们希望你在软件设计过程中反复参阅此书,以获取设计灵感。
      我们并不认为这组设计模式是完整的和一成不变的,它只是我们目前对设计的思考的记录。因此我们欢迎广大读者的批评与指正,无论从书中采用的实例、参考,还是我们遗漏的已知应用,或应该包含的设计模式等方面。     本书作者均是国际公认的面向对象软件领域的专家。
      Erich Gamma博士是瑞士苏黎士国际面向对象技术软件中心的技术主管。
      Richard Helm博士是澳大利亚悉尼IBM顾问集团公司面向对象技术公司的成员  
      Ralph Johnson博士是Urbana-Champaign伊利诺大学计算机科学系成员。 
      John Vlissides博士是位于纽约Hawthorne的IBN托马斯J.沃森研究中心的研究人员。 目      录
    序言
    前言
    读者指南
    第1章   引言 1
    1.1   什么是设计模式 2
    1.2   Smalltalk MVC中的设计模式 3
    1.3   描述设计模式 4
    1.4   设计模式的编目 5
    1.5   组织编目 7
    1.6   设计模式怎样解决设计问题 8
    1.6.1   寻找合适的对象 8
    1.6.2   决定对象的粒度 9
    1.6.3   指定对象接口 9
    1.6.4   描述对象的实现 10
    1.6.5   运用复用机制 13
    1.6.6   关联运行时刻和编译时刻的
    结构 15
    1.6.7   设计应支持变化 16
    1.7   怎样选择设计模式 19
    1.8   怎样使用设计模式 20
    第2章   实例研究:设计一个文档编
    辑器 22
    2.1   设计问题 23
    2.2   文档结构 23
    2.2.1   递归组合 24
    2.2.2   图元 25
    2.2.3   组合模式 27
    2.3   格式化 27
    2.3.1   封装格式化算法 27
    2.3.2   Compositor和Composition 27
    2.3.3   策略模式 29
    2.4   修饰用户界面 29
    2.4.1   透明围栏 29
    2.4.2   Monoglyph 30
    2.4.3   Decorator 模式 32
    2.5   支持多种视感标准 32
    2.5.1   对象创建的抽象 32
    2.5.2   工厂类和产品类 33
    2.5.3    Abstract Factory模式 35
    2.6   支持多种窗口系统 35
    2.6.1   我们是否可以使用Abstract Factory
    模式 35
    2.6.2   封装实现依赖关系 35
    2.6.3   Window和WindowImp 37
    2.6.4   Bridge 模式 40
    2.7   用户操作 40
    2.7.1   封装一个请求 41
    2.7.2   Command 类及其子类 41
    2.7.3   撤消和重做 42
    2.7.4   命令历史记录 42
    2.7.5   Command 模式 44
    2.8   拼写检查和断字处理 44
    2.8.1   访问分散的信息 44
    2.8.2   封装访问和遍历 45
    2.8.3   Iterator类及其子类 46
    2.8.4   Iterator模式 48
    2.8.5   遍历和遍历过程中的动作 48
    2.8.6   封装分析 48
    2.8.7   Visitor 类及其子类 51
    2.8.8   Visitor 模式 52
    2.9   小结 53
    第3章   创建型模式 54
    3.1   Abstract Factory(抽象工厂)—
    对象创建型模式 57
    3.2   Builder(生成器)—对象创建型
    模式 63
    3.3   Factory Method(工厂方法)—
    对象创建型模式 70
    3.4   Prototype(原型)—对象创建型
    模式 87
    3.5   Singleton(单件)—对象创建型
    模式 84
    3.6   创建型模式的讨论 89
    第4章   结构型模式 91
    4.1   Adapter(适配器)—类对象结构型
    模式 92
    4.2   Bridge(桥接)—对象结构型
    模式 100
    4.3   Composite(组成)—对象结构型
    模式 107
    4.4   Decorator(装饰)—对象结构型
    模式 115
    4.5   FACADE(外观)—对象结构型
    模式 121
    4.6   Flyweight(享元)—对象结构型
    模式 128
    4.7   Proxy(代理)—对象结构型
    模式 137
    4.8   结构型模式的讨论 144
    4.8.1   Adapter与Bridge 144
    4.8.2   Composite、Decorator与Proxy 145
    第5章   行为模式 147
    5.1   CHAIN OF RESPONSIBIL ITY(职责链)
    —对象行为型模式 147
    5.2   COMMAND(命令)—对象行为型
    模式 154
    5.3   INTERPRETER(解释器)—类行为型
    模式 162
    5.4   ITERATOR(迭代器)—对象行为型
    模式 171
    5.5   MEDIATOR(中介者)—对象行为型
    模式 181
    5.6   MEMENTO(备忘录)—对象行为型
    模式 188
    5.7   OBSERVER(观察者)—对象行为型
    模式 194
    5.8   STATE(状态)—对象行为型模式 201
    5.9   STRATEGY(策略)—对象行为型
    模式 208
    5.10   TEMPLATE METHOD(模板方法)
    —类行为型模式 214
    5.11   VISITOR(访问者)—对象行为型
    模式 218
    5.12   行为模式的讨论 228
    5.12 1   封装变化 228
    5.12.2   对象作为参数 228
    5.12.3   通信应该被封装还是被分布 229
    5.12.4   对发送者和接收者解耦 229
    5.12.5   总结 231
    第6章   结论 232
    6.1   设计模式将带来什么 232
    6.2   一套通用的设计词汇 232
    6.3   书写文档和学习的辅助手段 232
    6.4   现有方法的一种补充 233
    6.5   重构的目标 233
    6.6   本书简史 234
    6.7   模式界 235
    6.8   Alexander 的模式语言 235
    6.9   软件中的模式 236
    6.10   邀请参与 237
    6.11   临别感想 237
    附录A   词汇表 238
    附录B   图示符号指南 241
    附录C   基本类 244
    参考文献 249
  • 内容简介:
      《设计模式:可复用面向对象软件基础》并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”继承与“实现”继承的关系时,你应该对这些概念了然于胸,而不必迫不及待地翻阅手头的字典。
      另外,这也不是一篇高级专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从一开始就采用的设计方案。它们反映了不为人知的重新设计和重新编码的成果,而这些都来自软件开发者为了设计出灵活可复用的软件而长时间进行的艰苦努力。设计模式捕获了这些解决方案,并用简洁易用的方式表达出来。
      设计模式并不要求使用独特的语言特性,也不采用那些足以使你的朋友或老板大吃一惊的神奇的编程技巧。所有的模式均可以用标准的面向对象语言实现,这也许有时会比特殊的解法多费一些功夫,但是为了增加软件的灵活性和可复用性,多做些工作是值得的。
      一旦你理解了设计模式并且有了一种“Aha!”(而不是“Huh?”)的应用经验和体验后,你将用一种非同寻常的方式思考面向对象设计。你将拥有一种深刻的洞察力,以帮助你设计出更加灵活的、模块化的、可复用的和易理解的软件—这也是你为何着迷于面向对象技术的源动力,不是吗?
      当然还有一些提示和鼓励:第一次阅读此书时你可能不会完全理解它,但不必着急,我们在起初编写这本书时也没有完全理解它们!请记住,这不是一本读完一遍就可以束之高阁的书。我们希望你在软件设计过程中反复参阅此书,以获取设计灵感。
      我们并不认为这组设计模式是完整的和一成不变的,它只是我们目前对设计的思考的记录。因此我们欢迎广大读者的批评与指正,无论从书中采用的实例、参考,还是我们遗漏的已知应用,或应该包含的设计模式等方面。  
  • 作者简介:
      本书作者均是国际公认的面向对象软件领域的专家。
      Erich Gamma博士是瑞士苏黎士国际面向对象技术软件中心的技术主管。
      Richard Helm博士是澳大利亚悉尼IBM顾问集团公司面向对象技术公司的成员  
      Ralph Johnson博士是Urbana-Champaign伊利诺大学计算机科学系成员。 
      John Vlissides博士是位于纽约Hawthorne的IBN托马斯J.沃森研究中心的研究人员。
  • 目录:
    目      录
    序言
    前言
    读者指南
    第1章   引言 1
    1.1   什么是设计模式 2
    1.2   Smalltalk MVC中的设计模式 3
    1.3   描述设计模式 4
    1.4   设计模式的编目 5
    1.5   组织编目 7
    1.6   设计模式怎样解决设计问题 8
    1.6.1   寻找合适的对象 8
    1.6.2   决定对象的粒度 9
    1.6.3   指定对象接口 9
    1.6.4   描述对象的实现 10
    1.6.5   运用复用机制 13
    1.6.6   关联运行时刻和编译时刻的
    结构 15
    1.6.7   设计应支持变化 16
    1.7   怎样选择设计模式 19
    1.8   怎样使用设计模式 20
    第2章   实例研究:设计一个文档编
    辑器 22
    2.1   设计问题 23
    2.2   文档结构 23
    2.2.1   递归组合 24
    2.2.2   图元 25
    2.2.3   组合模式 27
    2.3   格式化 27
    2.3.1   封装格式化算法 27
    2.3.2   Compositor和Composition 27
    2.3.3   策略模式 29
    2.4   修饰用户界面 29
    2.4.1   透明围栏 29
    2.4.2   Monoglyph 30
    2.4.3   Decorator 模式 32
    2.5   支持多种视感标准 32
    2.5.1   对象创建的抽象 32
    2.5.2   工厂类和产品类 33
    2.5.3    Abstract Factory模式 35
    2.6   支持多种窗口系统 35
    2.6.1   我们是否可以使用Abstract Factory
    模式 35
    2.6.2   封装实现依赖关系 35
    2.6.3   Window和WindowImp 37
    2.6.4   Bridge 模式 40
    2.7   用户操作 40
    2.7.1   封装一个请求 41
    2.7.2   Command 类及其子类 41
    2.7.3   撤消和重做 42
    2.7.4   命令历史记录 42
    2.7.5   Command 模式 44
    2.8   拼写检查和断字处理 44
    2.8.1   访问分散的信息 44
    2.8.2   封装访问和遍历 45
    2.8.3   Iterator类及其子类 46
    2.8.4   Iterator模式 48
    2.8.5   遍历和遍历过程中的动作 48
    2.8.6   封装分析 48
    2.8.7   Visitor 类及其子类 51
    2.8.8   Visitor 模式 52
    2.9   小结 53
    第3章   创建型模式 54
    3.1   Abstract Factory(抽象工厂)—
    对象创建型模式 57
    3.2   Builder(生成器)—对象创建型
    模式 63
    3.3   Factory Method(工厂方法)—
    对象创建型模式 70
    3.4   Prototype(原型)—对象创建型
    模式 87
    3.5   Singleton(单件)—对象创建型
    模式 84
    3.6   创建型模式的讨论 89
    第4章   结构型模式 91
    4.1   Adapter(适配器)—类对象结构型
    模式 92
    4.2   Bridge(桥接)—对象结构型
    模式 100
    4.3   Composite(组成)—对象结构型
    模式 107
    4.4   Decorator(装饰)—对象结构型
    模式 115
    4.5   FACADE(外观)—对象结构型
    模式 121
    4.6   Flyweight(享元)—对象结构型
    模式 128
    4.7   Proxy(代理)—对象结构型
    模式 137
    4.8   结构型模式的讨论 144
    4.8.1   Adapter与Bridge 144
    4.8.2   Composite、Decorator与Proxy 145
    第5章   行为模式 147
    5.1   CHAIN OF RESPONSIBIL ITY(职责链)
    —对象行为型模式 147
    5.2   COMMAND(命令)—对象行为型
    模式 154
    5.3   INTERPRETER(解释器)—类行为型
    模式 162
    5.4   ITERATOR(迭代器)—对象行为型
    模式 171
    5.5   MEDIATOR(中介者)—对象行为型
    模式 181
    5.6   MEMENTO(备忘录)—对象行为型
    模式 188
    5.7   OBSERVER(观察者)—对象行为型
    模式 194
    5.8   STATE(状态)—对象行为型模式 201
    5.9   STRATEGY(策略)—对象行为型
    模式 208
    5.10   TEMPLATE METHOD(模板方法)
    —类行为型模式 214
    5.11   VISITOR(访问者)—对象行为型
    模式 218
    5.12   行为模式的讨论 228
    5.12 1   封装变化 228
    5.12.2   对象作为参数 228
    5.12.3   通信应该被封装还是被分布 229
    5.12.4   对发送者和接收者解耦 229
    5.12.5   总结 231
    第6章   结论 232
    6.1   设计模式将带来什么 232
    6.2   一套通用的设计词汇 232
    6.3   书写文档和学习的辅助手段 232
    6.4   现有方法的一种补充 233
    6.5   重构的目标 233
    6.6   本书简史 234
    6.7   模式界 235
    6.8   Alexander 的模式语言 235
    6.9   软件中的模式 236
    6.10   邀请参与 237
    6.11   临别感想 237
    附录A   词汇表 238
    附录B   图示符号指南 241
    附录C   基本类 244
    参考文献 249
查看详情
好书推荐 / 更多
设计模式
20世纪思想史:从弗洛伊德到互联网
[英]彼得·沃森 著;杨阳 译;张凤
设计模式
想象一朵未来的玫瑰
[葡]费尔南多·佩索阿 著;杨铁军 译
设计模式
语言与死亡/当代激进思想家译丛
[意]吉奥乔·阿甘本 著
设计模式
爸爸妈妈,请做我的摄影师:十万父母拍娃智慧分享儿童摄影
枫糖盒子 著
设计模式
陈规再造:巫鸿美术史文集卷三
[美]巫鸿 著;郑岩 编
设计模式
另一个世界:中国记忆1961-1962
[瑞典]林西莉 著;李之义 译
设计模式
生活,在别处:海明威影像集
鲍里斯·维多夫斯基 著;吴天楚 译;[美国]玛瑞儿·海明威;高方;王天宇
设计模式
大西洋的故事
[英]西蒙·温彻斯特(Simon Winchester) 著
设计模式
图说勃鲁盖尔
[日]冈部纮三 著;曹逸冰 译
设计模式
巴别塔(我要世界都听见我的声音,我曾被压抑,但绝不沉默。)(读客外国小说文库)
[英]A.S.拜厄特 著;王一鸣 译
设计模式
四十二年,我的"恶邻"李敖大师
林恒范 著;[中国台湾]林丽蘋 口述
设计模式
灭绝与演化:化石中的生命全史
[美]尼尔斯·艾崔奇 著;周亚纯 译;董丽萍