内容简介
全书共9章,第1章全面概述本书主要内容,帮助读者理解;第2章介绍学习后续章节所必需的UML基本介绍和必要概念;第3章介绍设计模式和模式的分类等概念;第4章讨论创造型模式(抽象工厂、工厂方法、生成器、原型和单件模式);第5章讨论结构型模式(适配器、桥接、组成、装饰、外观、享元和代理模式);第6章阐释行为模式(职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者模式);第7章针对所有设计模式向初学者提供一些提示;第8章包括常见的面试问题及实际示例;第9章涵盖Java面试问题和其他的一些概念,如MVC模式等。
目录
译者序
前言
致谢
第1章 概述 1
1.1 全书概览 1
1.2 设计模式简史 2
1.3 本书读者对象 2
1.4 本书对面试的帮助 3
1.5 如何阅读本书 3
1.6 本书主要内容 3
1.7 源代码免责声明 4
1.8 本书中使用的工具 4
第2章 UML基础 5
2.1 什么是UML 5
2.2 为什么使用UML 5
2.3 UML符号 6
2.4 面向对象概念 6
2.5 面向对象的分析与设计 8
2.6 UML构造块和符号 9
2.7 事物 9
2.8 关系 15
2.9 UML图 19
第3章 设计模式简介 28
3.1 什么是设计模式 28
3.2 设计模式简史 28
3.3 设计模式的作用 29
3.4 设计模式的分类 29
3.5 学习设计模式所需注意的问题 30
3.6 使用模式并积累设计经验 31
3.7 恰当使用设计模式 31
3.8 设计模式与软件框架 32
第4章 创造型模式 33
4.1 创造型模式 33
4.2 创造型模式的分类 33
4.3 工厂方法模式 34
4.4 抽象工厂模式 38
4.5 生成器模式 42
4.6 单例模式 49
4.7 原型模式 53
第5章 结构型模式 59
5.1 结构型模式 59
5.2 结构型模式的分类 59
5.3 适配器模式 60
5.4 桥接模式 66
5.5 组合模式 69
5.6 装饰模式 75
5.7 门面模式 81
5.8 代理模式 87
5.9 享元模式 90
第6章 行为型模式 97
6.1 行为型模式 97
6.2 行为型模式的类型 97
6.3 职责链模式 98
6.4 命令模式 104
6.5 解释器模式 109
6.6 迭代器模式 112
6.7 中介者模式 118
6.8 备忘录模式 124
6.9 观察者模式 128
6.10 状态模式 133
6.11 策略模式 136
6.12 模板方法模式 139
6.13 访问者模式 142
第7章 概念与提示 147
7.1 什么是反面模式 147
7.2 代码重构 147
7.3 提示 148
第8章 设计模式面试问题 150
8.1 设计模式面试问题 150
8.2 设计问题举例 228
第9章 其他概念 231
参考文献 247
前言/序言
Preface 前 言 亲爱的读者,请先别着急往后翻!我知道你们很多人从来都不读前言。但是我强烈推荐大家在继续阅读之前先好好看一下前言。这是因为本书的前言会提供一些阅读本书所必需的知识。 首先,编写本书时我们假定你有一定量的计算机知识。其次,编写本书的主要目的并不是为大家提供一本设计模式的查询手册或技术面试指南。我们在编写本书之前就设立了以下目标: 本书的语言保证没有任何计算机软件编程背景的读者能够轻松和透彻地理解本书所表述的内容。 本书以简单直接的方法清晰地展示设计模式的核心思想。 在读完本书之后,每位读者都会比以往更加希望优化自己的软件设计,并且会更加乐于参与日常工作中的软件架构设计讨论。 为了让大家更好地理解设计模式,本书提供了足够多的代码示例。这些示例对软件工程师面试也非常有帮助。所以建议大家好好读一读设计面试问题的相关章节。 在读透本书之后,一般软件工程师应该都能达到软件架构师的水准。 在20世纪80年代末,由于软件设计的结果总是令人很不满意,设计模式才真正地被引入程序设计实践之中。在后续的发展过程中,很多抽象方法(算法和数据结构)对于流程化/函数式编程契合得非常完美。但是它们与面向对象编程的联系不多。 随后,一本介绍设计模式的书籍标志着软件设计历史的转折点。1995年,4位精通面向对象的软件设计师(Gamma、Helm、Johnson、 Vlissides)出版了一本介绍23种设计模式的书籍。这本获得了巨大成功的书,又被称为GoF手册。 设计模式不断地帮助初学者(新手)避免常见的错误,并激励高级程序员构建出更好的软件。 本书的编写更像为GoF提出的这些设计模式所举办的庆功会。最近几年,几乎所有面向对象的软件架构都构建在这些设计模式的基础上。 在本书中,为了便于学生和教师理解,我们使用简单例子来诠释设计模式。本书结尾给出了常见的软件设计面试问题,以帮助求职者提升面试表现。 跟随本书深入了解设计模式、软件过程和方法会帮助你开发出更好的应用软件和基本架构。通过阅读本书你能够全面了解这些关键的设计模式。我们自己从中也获益良多,相信各位读者也一定会如此。 如果每一位求职者都能够完成本书的学习并且充分理解本书的内容,那么我相信你一定能够征服面试官。这也是本书的编写目的之一。 本书也适用于软件工程的本科生和研究生的学习与学术研究。本书中的各个章节都包含了设计理论和相关问题。作为一名学生,你也能够通过阅读本书的内容以准备相关考试。本书对各个关键点都有详尽的介绍。 建议各位读者完整阅读本书至少一次,以便对各个知识点有一个大概理解。在后续的学习和阅读过程中,你就能够有的放矢。尽管如此,考虑到人为原因,本书肯定会有部分不实之处,通过不断阅读也能够鉴别书中的谬误。如果你发现了任何错误,我们希望你能够到www.CareerMonk.com上传相关内容。也建议你在阅读本书的过程中多访问该网站,以查看新发现的问题或者任何更正。我们热忱地欢迎你对本书提出宝贵意见:Info@CareerMonk.com。 祝好,我们相信你会发现本书物有所值。 Sreenivasa Rao Meda教授,博士Narasimha KarumanchiCareerMonk.com创始人Acknowledgements 致 谢首先,感谢我们的家人和亲爱的朋友们。他们对我们生活的支持和鼓励让我们有能力完成本书的编写。 我们还要通过这本书对那些审读本书的朋友表示感激之情,包括对所有为本书提供各种支持,探讨技术问题,提供阅读、编写和修改意见,允许本书引用相关简介,并协助编辑校对和设计的朋友。我们尤其需要感谢下列人士: Kalyani Tummala,IIT克勒格布尔分校,Xilinx公司Girish P. Saraph教授,Vegayan系统公司创始人Manoj Patra,微软印度公司高级经理A. Vamshi Krishna,IIT坎普尔分校,Mentor图形公司Rambabu Dubbukuri,IIT坎普尔分校,微软印度公司Venkata Ramana Sanaka,诺基亚公司Kishore Jinka,IIT孟买分校Vikas Kedia,IIT孟买分校,谷歌印度公司Suman Somavarapu,IIT孟买分校,De-Shaw印度公司Anil Bhat,IIT罗克分校,微软印度公司Chaganti Siva Rama Krishna Prasad,StockMonks公司创始人Kumar和Jagan,Impression Design Studio公司创始人
设计模式精解及面试攻略 电子书 下载 mobi epub pdf txt