首页>参考读物>计算机科学与技术>软件与程序设计

设计模式精解及面试攻略
作者 : [印度]纳拉西姆哈·卡鲁曼希(Narasimha Karumanchi) 斯克林瓦萨·拉奥·梅达(Sreenivasa Rao Meda) 著
译者 : 刘品杰 译
出版日期 : 2016-05-26
ISBN : 978-7-111-53615-4
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 257
开本 : 16
原书名 : Peeling Design Patterns: For Beginners & Interviews
原出版社: CareerMonk Publications
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

资深软件架构师撰写,深入浅出地阐释设计模式的概念、应用场景、方法及最佳实践
以GoF的23种设计模式为基础,详细解读如何正确选择和应用设计模式,涵盖常见设计模式相关面试问题

设计模式是以专业软件开发人员的经验为总结形成的一系列系统解决方案,能够在不同场景下应用并成功解决在特定条件下会反复发生的设计问题,从而提高设计人员开发能力和软件编写质量。本书以GoF提出的23种设计模式为基础,全面介绍设计模式的概念、应用场景、方法以及最佳实践,同时还用两章阐释程序员面试过程中涉及的设计模式问题,可以帮助你提升面试技巧与技能。

本书主要特点:
涵盖GoF提出的23种设计模式
以简单直接的方法展示设计模式的核心思想
涵盖设计模式相关的面试问题
提供大量实际代码示例,并且全部代码由Java编写,方便调试
基于软件开发人员实践经验,减少学习误区
无需软件设计基础知识

内容简介
资深软件架构师撰写,深入浅出地阐释设计模式的概念、应用场景、方法及最佳实践,全面介绍设计模式对于面向对象的软件开发与设计的重要性、基本形式与分类、应用方法,并针对面试过程中涉及的常见设计模式相关面试问题进行了汇总,为软件开发人员提供有益指导。
全书共9章,第1章全面概述本书主要内容;第2章介绍学习后续章节所必需的UML基本内容和必要概念;第3章介绍设计模式和模式的分类等概念;第4章讨论创造型模式(抽象工厂、工厂方法、生成器、原型和单件模式);第5章讨论结构型模式(适配器、桥接、组成、装饰、外观、享元和代理模式);第6章阐释行为模式(职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者模式);第7章针对所有设计模式向初学者提供一些提示;第8章包括常见的面试问题及实例;第9章涵盖Java面试问题和其他的一些概念,如MVC模式等。

作者简介




Narasimha Karumanchi 资深软件架构师,现任亚马逊印度公司高级开发工程师,之前曾就职于IBM实验室、Mentor Graphics公司和微软。他创办了CareerMonk,并经常为StockMonks设计算法。他出版了多部著作,目前已被翻译为中文、韩语、日语等。




Sreenivasa Rao Meda 现任JNTU大学SIT学院董事兼计算机科学教授。他拥有广泛的兴趣爱好并活跃在学术最前沿。

译者简介
刘品杰 硕士,技术方向为工业自动化控制、DCS/PLC/SCADA系统研发、机器人技术等。先后参与过国产化核电站DCS控制系统研发、国产化油气管道大型SCADA系统研发。历任系统开发工程师、产品经理、项目经理。

图书前言

亲爱的读者,请先别着急往后翻!我知道你们很多人从来都不读前言。但是我强烈推荐大家在继续阅读之前先好好看一下前言。这是因为本书的前言会提供一些阅读本书所必需的知识。
首先,编写本书时我们假定你有一定量的计算机知识。其次,编写本书的主要目的并不是为大家提供一本设计模式的查询手册或技术面试指南。我们在编写本书之前就设立了以下目标:
本书的语言保证没有任何计算机软件编程背景的读者能够轻松和透彻地理解本书所表述的内容。
本书以简单直接的方法清晰地展示设计模式的核心思想。
在读完本书之后,每位读者都会比以往更加希望优化自己的软件设计,并且会更加乐于参与日常工作中的软件架构设计讨论。
为了让大家更好地理解设计模式,本书提供了足够多的代码示例。这些示例对软件工程师面试也非常有帮助。所以建议大家好好读一读设计面试问题的相关章节。
在读透本书之后,一般软件工程师应该都能达到软件架构师的水准。
在20世纪80年代末,由于软件设计的结果总是令人很不满意,设计模式才真正地被引入程序设计实践之中。在后续的发展过程中,很多抽象方法(算法和数据结构)对于流程化/函数式编程契合得非常完美。但是它们与面向对象编程的联系不多。
随后,一本介绍设计模式的书籍标志着软件设计历史的转折点。1995年,4位精通面向对象的软件设计师(Gamma、Helm、Johnson、 Vlissides)出版了一本介绍23种设计模式的书籍。这本获得了巨大成功的书,又被称为GoF手册。
设计模式不断地帮助初学者(新手)避免常见的错误,并激励高级程序员构建出更好的软件。
本书的编写更像为GoF提出的这些设计模式所举办的庆功会。最近几年,几乎所有面向对象的软件架构都构建在这些设计模式的基础上。
在本书中,为了便于学生和教师理解,我们使用简单例子来诠释设计模式。本书结尾给出了常见的软件设计面试问题,以帮助求职者提升面试表现。
跟随本书深入了解设计模式、软件过程和方法会帮助你开发出更好的应用软件和基本架构。通过阅读本书你能够全面了解这些关键的设计模式。我们自己从中也获益良多,相信各位读者也一定会如此。
如果每一位求职者都能够完成本书的学习并且充分理解本书的内容,那么我相信你一定能够征服面试官。这也是本书的编写目的之一。
本书也适用于软件工程的本科生和研究生的学习与学术研究。本书中的各个章节都包含了设计理论和相关问题。作为一名学生,你也能够通过阅读本书的内容以准备相关考试。本书对各个关键点都有详尽的介绍。
建议各位读者完整阅读本书至少一次,以便对各个知识点有一个大概理解。在后续的学习和阅读过程中,你就能够有的放矢。尽管如此,考虑到人为原因,本书肯定会有部分不实之处,通过不断阅读也能够鉴别书中的谬误。如果你发现了任何错误,我们希望你能够到www.CareerMonk.com上传相关内容。也建议你在阅读本书的过程中多访问该网站,以查看新发现的问题或者任何更正。我们热忱地欢迎你对本书提出宝贵意见:Info@CareerMonk.com。
祝好,我们相信你会发现本书物有所值。

Sreenivasa Rao Meda
教授,博士
Narasimha Karumanchi
CareerMonk.com创始人

上架指导

计算机\程序设计

封底文字

设计模式是以专业软件开发人员的经验为总结形成的一系列系统解决方案,能够在不同场景下应用并成功解决在特定条件下会反复发生的设计问题,从而提高设计人员开发能力和软件编写质量。本书以GOF提出的23种设计模式为基础,全面介绍设计模式的概念、应用场景、方法以及最佳实践,同时还用两章篇幅阐释程序员面试过程中涉及的设计模式问题,可以帮助你提升面试技巧与技能。
本书主要特点:
·涵盖GOF提出的23种设计模式
·以简单直接的方法展示设计模式的核心思想
·涵盖设计模式相关的面试问题
·提供大量实际代码示例,并且全部代码由Java编写,方便调试
·基于软件开发人员实践经验,减少学习误区
·无须软件设计基础知识

作者简介

[印度]纳拉西姆哈·卡鲁曼希(Narasimha Karumanchi) 斯克林瓦萨·拉奥·梅达(Sreenivasa Rao Meda) 著:暂无简介

译者简介

刘品杰 译:暂无简介

译者序

对于软件开发的新手来说,设计模式是什么?设计模式能帮助我做什么?也许这些问题你还无法回答得很清楚;也许你还在为Lambda表达式和反射等概念所困扰;也许你还在为能够弄清楚某种软件框架而苦恼,却正在你想要找一份工作的时候,被面试官问到设计模式的问题;也许你的软件开发团队在需求三番五次变更之后仍然要求按照时间完成软件开发,否则其他部门的同事就无法继续工作。没有办法!因为软件开发已经从三五个人的作坊式生产转变成了几万人的大规模流水线式的开发。虽然认证机构在讲述软件项目生命周期管理和开发流程时总把流程分得很明晰,但是实际开发的时候,却像是一场浑水摸鱼似的运动战。
在来自于IBM Rational软件的工程师们开始编写第一本关于设计模式的书籍时,他们所关心的就是如何提高大规模开发过程中设计人员整体的软件设计能力和软件编写质量。虽然当时的IBM还是一家以卖服务器为生的公司,但旗下的Rational品牌还是提供了一系列用于提高软件开发质量的软件,如版本管理工具Clear Case软件、缺陷管理与变更追踪软件ClearQuest等。这些软件很多已经成为大规模商业软件开发中必不可少的工具。当然,我在这里无意于为IBM做广告,我想说明的只是设计模式也是一种提高设计人员开发能力和软件编写质量的工具。它能够帮助你从与项目经理、QC、QA无尽的沟通与争吵中解放出来,让你和其他开发人员和睦相处以更快地完成开发工作,协助你在需求漫天飞舞的环境中捋清头绪,让你有更多时间做一些对自己身心有益的事情。当有一天你真正地经历了这一次蜕变,成为软件开发专家的时候,望尽沧海,还是要感谢设计模式给我们带来的这一切。
本书的立意不仅仅在于介绍基本的设计模式知识,更多的是说明在何种条件下选择正确的设计模式。因为在实践中,滥用或错用设计模式有时候是更大的浪费。因此,作者在设计模式的介绍过程中穿插了不同类型模式之间的比较,并在第8章和第9章给出了大量的Java问题实例,供读者深入理解。第8章的面试问题中给出的代码经译者测试,有些仍需要做一定的工作才能够满足运行条件。但第8章和第9章的示例与问题对于初学者明确Java中很多基本概念和代码实现是非常有益的,也能避免自己在日后的工作中陷入简单的错误中。
由于翻译时间有限,再加上译者的水平有限,难免存在不足或错误,还望各位读者不吝指正。

图书目录

译者序
前言
致谢
第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

教学资源推荐
作者: [美] 本贾尼?斯特劳斯特鲁普 (Bjarne Stroustrup)著
作者: (美)Eric S.Roberts
作者: 王瑞民 卢红星 主编 姬波 陈静 朱真峰 柳宏川 参编
作者: 施霞萍 王瑾德 史建成 马可幸 编著
参考读物推荐
作者: 刘铭 陈雪峰 李钢 秦琼 著
作者: 丁如敏 王琳 等著
作者: 列旭松 陈文 著