Java设计模式

出版时间:2012-9  出版社:电子工业出版社  作者:[美]梅特斯克(Metsker,S.J.),[美]维克(Wake,W.J.)  译者:张逸,史磊  
Tag标签:无  

内容概要

本书通过一个完整的Java项目对经典著作Design
Patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为5大类别,以充分展现各个模式的重要特征,并结合UML类图与对应的Java程序,便于读者更好地理解。全书给出了大量的练习,作为对读者的挑战,以启发思考,督促读者通过实践练习的方式来掌握设计模式。同时,作者又给出了这些练习的参考答案,使读者可以印证比较,找出自己的不足,提高设计技能。

作者简介

作者:(美国)史蒂芬•约翰•梅特斯克(Steven John Metsker) (美国)威廉•维克(William C.Wake) 译者:张逸 史磊  梅特斯克(Steven John Metsker)是Dominion Digital公司的管理顾问,该公司负责信息技术与商业过程的重新设计。Steven擅长运用面向对象技术构建结构清晰、功能强大的软件系统。他还是Building Parsers with JavaTM、Design Pattern JavaTM Workbook与Design Patterns in C#(皆由Addison—Wesley出版)等著作的作者。 维克(William C.Wake)是一名独立软件咨询师、教练和培训讲师,他拥有超过二十年的软件开发经验。William C.Wake先后任职于Capital One Financial、DMR Trecom与VTLS。他Refactoring Workbook与ExtremeProgramming Explored(皆由Addison—Wesley出版)等著作的作者。

书籍目录

序xv
第1章 绪论1
为何需要模式1
为何需要设计模式2
为何选择Java3
UML3
挑战4
本书的组织4
欢迎来到Oozinoz公司6
小结6
第1部分 接口型模式
第2章 接口型模式介绍8
接口与抽象类8
接口与职责10
小结11
超越普通接口12
第3章 适配器(Adapter)模式13
接口适配13
类与对象适配器17
JTable对数据的适配20
识别适配器24
小结25
第4章 外观(Facade)模式27
外观类、工具类和示例类27
重构到外观模式29
小结38
第5章 合成(Composite)模式39
常规组合39
合成模式中的递归行为40
组合、树与环42
含有环的合成模式47
环的影响50
小结51
第6章 桥接(Bridge)模式52
常规抽象:桥接模式的一种方法52
从抽象到桥接模式54
使用桥接模式的驱动器57
数据库驱动57
小结59
第2部分 职责型模式
第7章 职责型模式介绍62
常规的职责型模式62
根据可见性控制职责64
小结65
超越普通职责65
第8章 单例(Singleton)模式67
单例模式机制67
单例和线程68
识别单例70
小结71
第9章 观察者(Observer)模式72
经典范例:GUI中的观察者模式72
模型/视图/控制器76
维护Observable对象82
小结84
第10章 调停者(Mediator)模式85
经典范例:GUI调停者(Mediator)85
关系一致性中的调停者模式89
小结96
第11章 代理(Proxy)模式97
经典范例:图像代理97
重新思考图片代理102
远程代理104
动态代理109
小结114
第12章 职责链(Chain of Responsibility)模式115
现实中的职责链模式115
重构为职责链模式117
固定职责链119
没有组合结构的职责链模式121
小结121
第13章 享元(Flyweight)模式122
不变性122
抽取享元中不可变的部分123
共享享元125
小结128
第3部分 构造型模式
第14章 构造型模式介绍130
构造函数的挑战130
小结132
超出常规的构造函数132
第15章 构建者(Builder)模式134
常规的构建者134
在约束条件下构建对象137
可容错的构建者139
小结140
第16章 工厂方法(Factory Method)模式141
经典范例:迭代器141
识别工厂方法142
控制要实例化的类143
并行层次结构中的工厂方法模式145
小结147
第17章 抽象工厂(Abstract Factory)模式148
经典范例:图形用户界面工具箱148
抽象工厂和工厂方法153
包和抽象工厂157
小结157
第18章 原型(Prototype)模式158
作为工厂的原型158
利用克隆进行原型化159
小结162
第19章 备忘录(Memento)模式163
经典范例:使用备忘录模式执行撤销操作163
备忘录的持久性170
跨会话的持久性备忘录170
小结174
第4部分 操作型模式
第20章 操作型模式介绍176
操作和方法176
签名177
异常178
算法和多态179
小结180
超越常规的操作181
第21章 模板方法(Template Method)模式182
经典范例:排序182
完成一个算法186
模板方法钩子188
重构为模板方法模式189
小结191
第22章 状态(State)模式193
对状态进行建模193
重构为状态模式197
使状态成为常量201
小结203
第23章 策略(Strategy)模式204
策略建模204
重构到策略模式207
比较策略模式与状态模式211
比较策略模式和模板方法模式211
小结212
第24章 命令(Command)模式213
经典范例:菜单命令213
使用命令模式来提供服务216
命令钩子217
命令模式与其他模式的关系219
小结220
第25章 解释器(Interpreter)模式221
一个解释器示例221
解释器、语言和解析器233
小结234
第5部分 扩展型模式
第26章 扩展型模式介绍236
面向对象设计的原则236
Liskov替换原则237
迪米特法则238
消除代码的坏味道239
超越常规的扩展240
小结241
第27章 装饰器(Decorator)模式242
经典范例:流和输出器242
函数包装器250
装饰器模式和其他设计模式的关系257
小结258
第28章 迭代器(Iterator)模式259
普通的迭代259
线程安全的迭代261
基于合成结构的迭代267
小结277
第29章 访问者(Visitor)模式278
访问者模式机制278
常规的访问者模式280
Visitor环286
访问者模式的危机290
小结292
附录A 指南293
附录B 答案297
附录C Oozinoz源代码366
附录D UML概览369
参考文献375

章节摘录

版权页:   插图:   假设其他的开发者编写了一个方法,用来查询车间里所有机器拥有的原料桶的集合。一旦访问到卸载缓冲池,如果unloadBuffer类的9etTubs0方法抛出异常,这段代码就会出现问题。这严重违反了LSP:当你将unloadBuffer对象当做Machine对象来使用时,程序可能会崩溃!假设不抛出异常,我们需要简单地忽略对unloadBuffer类中9etTubs0和addTubO的调用。这一做法依然违反了LSP,因为在你给机器添加一个原料桶时,这个原料桶可能会消失! 违反LSP并不一定是设计缺陷。针对Oozinoz公司的这种情况,需要权衡一下,让Machi ne类拥有大多数机器的行为和违反LSP原则,究竟哪个价值更大。重要的一点是意识到LSP,并且清楚为什么其他设计可能违反了LSP。 迪米特法则 在20世纪80年代后期,美国东北大学Demeter Project的成员尝试编辑了一些规则,用于确保健康的面向对象编程。项目团队将这些规则称为迪米特法则(Law ofDemeter,LoD)。KarlLieberherr和Ian Holland在Assuring Good Style for Object—Oriented Programs一文中全面地总结了这一规则。声明认为:非正式地说,迪米特法则要求每个方法只能给有限的对象发送消息,包括参数对象、[this]伪变量,以及[this]的直接子部分。文章随后给出了该法则的正式定义。相对于完全理解迪米特法则的意图,识别设计是否违反该法则更加容易。 假设你有一个Material Manager对象,该对象有一个方法接收一个Tub对象作为参数。Tub对象有一个Location属性,该属性返回一个Machi ne对象,用以表示桶被放在哪个位置。假设在Material Manager的方法中,想要知道机器是否可用,你可能会写如下代码: 如果这个挑战仅仅让你觉得形如a.b.c的表达式是错误的,那就降低了迪米特法则的价值。事实上,Lieberherr和Holland希望迪米特法则能够进一步确定无误地回答这样的问题:是否可以遵循某种公式或法则来写出更好的面向对象程序?这篇阐释迪米特法则的早期论文非常值得我们拜读。就像Liskov替换原则一样,如果知道并遵循这些规则,它就会帮助你写出更好的代码,一旦你的设计违背了这些原则,就能够及时获知。 你会发现,遵循这些指导原则,扩展性就能够自然而然产生好的代码。但是,对于很多开发者而言,面向对象的开发依然是一门艺术。对代码库的艺术扩展源于艺术家们的实践,而这些大师们依然在不断地改进他们的艺术。重构就是诸多技艺中的一种工具,它可以在不改变既有功能的前提下,改善代码的质量。 消除代码的坏味道 你可能寄希望于Liskov替换原则与迪米特法则,能够永远地防止你写出拙劣的代码。不过,更实际的做法是运用这些准则来帮助发现代码的坏味道,然后修复它。这是一种通用的实践:先写出可工作的代码,然后找出代码的问题,并且修复它,以提升代码质量。但是该如何准确地识别问题呢?答案就是找到代码的坏味道。在Refactoring:Improving the Design of ExitingCode(由Fowler等人在1999年编写)一书中描述了22种坏味道,并给出了相应的重构手法。

编辑推荐

《Java设计模式(第2版)》适合各个层次的Java开发人员与设计人员阅读,也可以作为学习Java与设计模式的参考读物或教材。

图书封面

图书标签Tags

评论、评分、阅读与下载


    Java设计模式 PDF格式下载


用户评论 (总计67条)

 
 

  •   详细介绍了,java中的设计模式,很适合开发时做参考
  •   正在读,设计模式分的比较细 以例子的方式讲解
  •   还未开始看,不过对于经典设计模式类的书籍,无论初学或者资深,都需要经常翻阅,提升自己
  •   很好 适合不懂设计模式的看
  •   从不同角度学设计模式
  •   大致浏览了下 蛮不错的 书里还写了一些“挑战” 就是出题 然后最后给了题的答案 挺有意思的
  •   书本分类很明确,讲述的很好,不呆板,学习起来很轻松。我很喜欢,特别是挑战栏目。
  •   刚拿到书,质量不错,有实例的讲解,得好好学习,
  •   看了一小部分,很受启发
  •   适合有一定基础的人阅读
  •   帮朋友买的,反馈结果,书很好!朋友很喜欢!
  •   帮朋友买的,据说不错,是他想要的。书的装订和印刷都还好。
  •   很实用很详细 很适合初学者使用
  •   不错不错,经典之作
  •   看了一些,正是我所想要看的书,给我的帮助很大
  •   挺不错,赞一个
  •   从书的价值来看,值。
  •   hcj
  •   刚买到手 还没开始看
  •   很满意,很不错
  •   活到老学到老。值得一读
  •   有时间让老公写追评,给他买的
  •   内容不错 正是我需要的
  •   例子举得都不是很贴切
  •   书写得不错,但是设计模式需要长期的实践运用才能理解透的。慢慢看吧
  •   深入学习这本书,有利于提高java实战能力
  •   这个是java 开发人员必备的吧~
  •   在学习了java一段时间后,可以用它来让自己加深理解和记忆。
  •   比较有条理性
  •   内容挺适合初学者读的
  •   帮朋友带了,说不错,学习中。。。
  •   两本书质量不错
  •   这本书值得一看,对于我们的提升还是很有用的!
  •   看了几页,内容还不知道怎么样,纸质还不错,但书有点薄
  •   买了,还没有细看。感觉内容有点杂乱,翻翻还是可以的。
  •   一种知识,可能当时你阅读,没有什么感觉,但是等你积累了一定经验再来看,你会发现很多新的感悟,Java设计模式就是这样的一本书
  •   里面有些思考题,而且还有答案,这点挺好,适合初级程序员读。感觉翻译的不怎么样,有些地方翻译的不好理解。
  •   刚买回来看了两章,感觉内容偏概念些,写的也比较抽象,适合有些基础的人看,现在暂时还理解不了!
  •   书不错就是外壳弄得很脏。
  •   收到书后看了一点,内容基本上不错,但书本有折痕,似乎是二手的,而且书的纸质不好。
  •   个人感觉书的内容不够详细,推荐买马丁福勒尔的书
  •   和相像中不一要
  •   可能是个人品味的问题,我感觉这书是写的比较烂的,和老的JAVA设计模式相比 相差太多。
  •   很多长句子明显是无脑从原著翻译过来的,整本书的组织还算可以,但是具体的讲解着实不敢恭维,其中的各种 挑战! 也是仁者见仁吧,个人觉得看起来很麻烦,初学者看看大话设计模式都比这强,起码远不值得这个价格,不值得购买
  •   讲的不是很详细,很多设计模式的精髓没有体现出来
  •   内容很少,对各种模式的讲解非常模糊
  •   同样一本书,为什么在亚马逊是38块,而在当当是60,请解释一下!要不是我今天才发现,书又写字了,我指定要退货。这是为什么?????????下次再也不买当当的书了,第一次在当当买书,碰到这样的事,这也是最后一次
  •   这本书我是买来作为参考备用的,一直没完全有时间去读,但绝对是好处!不懂模式是很难做出灵活的系统的
  •   为什么我在网上下的资源 只有一个视频 还没有声音 !!!!!!!
  •   价格很是便宜,比某迅,猫狗商城,裆裆便宜好多。
  •   本书页数376页,内容也是网上大量能搜到的23种模式的探讨,且书里内容的行间距大,而此书定价75元,我认为不值。买时打折4.9折,倒是可以买来一阅。
  •   不错,就例子要慢慢品味才懂
  •   虽然没看过gof4的作品,但就本书的内容来说,写的有点不知所云,当然这是个人感受
  •   本人英文还不错,因为赶时间,所以买本中文的来看。但是拿到书一看,越看越不明白,后来跟英文原版一对比, 翻译的什么狗屁玩意,不重要的地方就不说了,很多关键的总结性的地方都翻译的驴唇不对马嘴,真是坑爹。不想多说了,这本书翻译的就是垃圾中的战斗机,强烈建议不好买。本人已将此书拿去垫桌子。
  •   书的封面纸张和内容的纸张不齐,并且纸张很薄、很不好的感觉。
  •   书还可以,有点深懊,有点东西看了几遍也没明白
  •   这本书很不错呢。对于我来说很实用
  •   和其他的设计模式书不一样
  •   不是那么通俗易懂.还是大话设计模式阅读感比较强
  •   经典书籍,好像还不错
  •   要写什么oo
  •   感觉不是很好,很空洞
  •   便宜,便宜,真心便宜
  •   个人凭借
  •   java设计模式
  •   非常好,正在看。。。。。
  •   对工作有帮助的一本书
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7