第一图书网

模式

王翔 电子工业出版社
出版时间:

2012-4  

出版社:

电子工业出版社  

作者:

王翔  

页数:

395  

Tag标签:

无  

内容概要

  设计模式不是一门适合空谈的技术,它来自于开发人员的工程实践又服务于工程实践。
  本书并不是一本面向入门者的读物,因为它需要结合工程实践介绍如何发现模式灵感、如何应用模式技术。不过作为一本介绍设计模式的书,它并不需要读者对于庞大的JDK有深入了解,因为扩展主要是结合Java语法完成的,配合书中的实例,相信读者不仅能够熟练应用设计模式技术,也能令自己的Java语言上一个台阶。
  为了降低学习门槛,本书第一部分除了介绍面向对象设计原则外,还充实了一些Java语言的介绍,但这些内容并不是枯燥的讲解,读者可以在阅读中通过一系列动手练习尽快吸收这些理论并将它们内化为自己的技能。本书最后一部分的“GOF综合练习”把各种设计模式做了一次集中展示,目的是让读者把分散的模式知识融合在一起,能够将书本知识真正用于改善一个“准”生产型模块的实现。

书籍目录

第一篇 预备知识——发掘Java语言的面向对象设计潜力
 第1章 面向对象设计原则
  1.1 说明
  1.2 单一职责原则(SRP)
  1.3 里氏替换原则(LSP)和依赖倒置原则(DIP)
  1.4 接口隔离原则(ISP)
  1.5 迪米特法则(Law of Demeter,LoD)
  1.6 开闭原则(OCP)
  1.7 小结
  1.8 自我检验
 第2章 重新研读Java语言
  2.1 说明
  2.2 Java部分语法内容扩展
  2.2.1 规划和组织代码——包
  2.2.2 正式命名的常量契约——枚举
  2.2.3 考验算法的抽象能力——泛型
  2.2.4 用贴标签的方式扩展对象特性——标注
  2.3 面向插件架构的配置系统设计
  2.4 依赖注入
  2.4.1 背景介绍
  2.4.2 示例情景
  2.4.3 构造注入(Constructor)
  2.4.4 设值注入(Setter)
  2.4.5 接口注入
  2.4.6 小结
  2.4.7 自我检验
  2.5 连贯接口(Fluent Interface)
  2.6 自我检验
 第3章 Java和C#
  3.1 说明
  3.2 枚举
  3.3 泛型
  3.4 属性和标注
  3.5 操作符重载和类型转换重载
  3.6 委托、事件、匿名方法
  3.7 Lamada和LINQ
  3.8 小结
第二篇 创建型模式——管理对象实例的构造过程
 第4章 工厂&工厂方法模式
  4.1 说明
  4.2 简单工厂
  4.2.1 最简单的工厂类
  4.2.2 简单工厂的局限性
  4.3 经典回顾
  4.4 解耦工厂类型与客户程序
  4.5 基于配置文件的工厂
  4.5.1 基于配置文件解耦工厂接口和具体工厂类型
  4.5.2 基于配置文件解耦工厂类型和具体工作产品
  4.6 批量工厂
  4.7 典型工程化实现
  4.8 小结
  4.9 Java 中的典型实现
  4.10 自我检验
 第5章 单件模式
  5.1 说明
  5.2 经典回顾
  5.3 枚举方式的单件模式
  5.4 细节决定成败
  5.5 线程级单件模式
  5.6 分布式环境下的单件模式
  5.7 单件模式的使用问题
  5.8 小结
  5.9 Java 中的典型实现
 第6章 抽象工厂模式
  6.1 说明
  6.2 经典回顾
  6.3 解决经典模式的硬伤
  6.4 委托生产外包
  6.5 小结
  6.6 Java 中的典型实现
 第7章 创建者模式
  7.1 说明
  7.2 经典回顾
  7.3 为Builder贴个标签
  7.4 具有装配/卸裁能力的Builder
  7.5 连贯接口形式的Builder
  7.6 小结
  7.7 Java 中的典型实现
  7.8 自我检验
 第8章 原型模式
  8.1 说明
  8.2 经典回顾
  8.3 表面模仿还是深入模仿
  8.3.1 概念
  8.3.2 “纯手工”实现深层复制
  8.3.3 制作实现序列化工具类型
  8.3.4 简单自定义复制过程
  8.3.5 细颗粒度自定义复制过程
  8.4 小结
  8.5 自我检验
第三篇 结构型模式——组织灵活的对象体系
 第9章 适配器模式
  9.1 说明
  9.2 经典回顾
  9.3 组适配器
  9.4 用配置约定适配过程
  9.5 面向数据的适配机制
  9.6 小结
  9.7 Java 中的典型实现
  9.8 自我检验
 第10章 桥模式
  10.1 说明
  10.2 经典回顾
  10.3 分解复杂性的多级桥关系
  10.4 具有分支的桥
  10.5 看着“图纸”造桥
  10.6 具有约束关系的桥
  10.7 小结
  10.8 自我检验
 第11章 组合模式
  11.1 说明
  11.2 经典回顾
  11.3 适于XML信息的组合模式
  11.4 分布式“部分——整体”环境
  11.5 小结
  11.6 Java 中的典型实现
  11.7 自我检验
 第12章 装饰模式
  12.1 说明
  12.2 经典回顾
  12.3 卸载装饰
  12.4 通过配置和创建者完成装饰过程
  12.5 Java 中的典型实现
  12.6 小结
 第13章 外观模式
  13.1 说明
  13.2 经典回顾
  13.3 平台、开发语言无关的抽象外观接口——WSDL
  13.4 Java 中的典型实现
  13.5 小结
 第14章 享元模式
  14.1 说明
  14.2 经典回顾
  14.3 枚举享元方式
  14.4 制订共享计划
  14.5 通过“委托——代理”关系和队列实现异步享元
  14.6 小结
 第15章 代理模式
  15.1 说明
  15.2 经典回顾
  15.3 远程代理
  15.4 动态代理
  15.5 Java中的典型实现 3
  15.6 小结
第四篇 行为型模式——算法、控制流的对象化操作
 第16章 职责链模式
  16.1 说明
  16.2 经典回顾
  16.3 非链表方式定义职责链
  16.4 小结
  16.5 Java 中的典型实现
 第17章 模板方法模式
  17.1 说明
  17.2 经典回顾
  17.3 类和接口的模板——泛型
  17.4 系统架构的模板——配置
  17.5 小结
  17.6 Java 中的典型实现
  17.7 自我检验
 第18章 解释器模式
  18.1 说明
  18.2 经典回顾
  18.3 采用正则表达式
  18.4 采用字典
  18.5 多级解释器系统
  18.6 用XSD解释自定义业务语言
  18.7 小结
  18.8 Java中的典型实现
  18.9 自我检验
 第19章 命令模式
  19.1 说明
  19.2 经典回顾
  19.3 打包命令对象
  19.4 异步命令操作
  19.5 命令操作队列
  19.6 小结
  19.7 Java 中的典型实现
  19.8 自我检验
 第20章 迭代器模式
  20.1 说明
  20.2 经典回顾
  20.3 Java内置的迭代器
  20.4 小结
  20.5 自我检验
 第21章 中介者模式
  21.1 说明
  21.2 经典回顾
  21.3 根据配置动态协调通知关系
  21.4 小结
  21.5 Java 中的典型实现
  21.6 自我检验
 第22章 备忘录模式
  22.1 说明
  22.2 经典回顾
  22.3 把备忘压栈
  22.4 备忘录的序列化和持久化
  22.5 小结
  22.6 Java 中的典型实现
  22.7 自我检验
 第23章 观察者模式
  23.1 说明 1
  23.2 经典回顾
  23.3 面向服务接口的观察者
  23.4 小结
  23.5 Java中的典型实现
  23.6 自我检验 1
 第24章 状态模式
  24.1 说明 3
  24.2 经典回顾
  24.3 状态的序列化和持久化
  24.4 主动状态对象
  24.5 小结
  24.6 自我检验
 第25章 策略模式
  25.1 说明
  25.2 经典回顾
  25.3 策略模式与解释器模式的协作
  25.4 Java中的典型实现
  25.5 小结
 第26章 访问者模式
  26.1 说明
  26.2 经典回顾
  26.3 借助反射或Dynamic实现访问者
  26.4 Java中的典型实现
  26.5 小结
  26.6 自我检验
第五篇 GOF综合练习
 第27章 GOF部分阶段实践
  27.1 回顾GOF
  27.2 需求的提出
  27.3 第一轮技术分析
  27.4 第二轮技术分析
  27.5 第三轮技术分析
  27.6 示例实现
附录 A Java和C#关键字对照表


图书封面

图书标签Tags

广告

下载页面


模式 PDF格式下载



大家好:

我是《模式——工程化实现及扩展》系列的作者王翔。

最近上市的《模式——工程化实现及扩展(设计模式C# 版)》一书中发现有些章节出现了部分示例代码中缺少空格的问题,尽管现在还没找到具体出错环节,但我最后一次复审时没有认真校对代码是最主要的原因,向大家致歉。 也请大家购买前注意C#这本书此次印刷的版本中存在这个问题。

网上的示例代码是可以正常编译并进行单元测试的,而且内容比书中的示例完整,注释也比较全。

C#这本书出错原因初步估计是最终排版时要对示例代码统一字体,做字体转换时导致代码中空格丢失。

《模式:工程化实现及扩展(设计模式Java版) 》经过重新梳理暂时还没有发现相同的问题,可能与我机器上Eclipse和Visual Studio默认字体不同有关。

再次向各位读者道歉。


原谅我用了一个普通再也普通不过的标题:这是一本好书,因为我找不到合适的字眼来形容它。当第一次拿到本书时,就被她深深的吸引:先说封面,淡雅优美,给人一种心旷神怡的感觉,让你感觉她不再是一本技术书,而更像是艺术书;再说内容,与众不同,设计模式类的书籍多是“理论”与“实践”相分离,读者可以好不容易理解了理论知识,却不知道如何实践,而理论和实践相结合,是本书一大特色,让你看完本书后不再停留在设计模式是什么的阶段,而是进入如何使用、用好设计模式的层次。


值得收藏的一本书,虽然新手阶段不一定用得到,但是深入学习的话会对你的代码提高很有帮助!反复的构思代码的设计和优化问题!


感觉不错的一本书,第一次看到这本书实在图书馆借的,现在想买下来慢慢看。


这本书对于从刚刚从学校走出来的学生有很多的帮助!!!


内容实在,有条理性 很好了


凑合着看吧,好像听难的,要多找些资料对比才懂。。


本书有一定难度,适合有基础的程序员阅读


大体翻了一下,案例的复杂度可以说比较底,可以当练习


刚拿到手还没有看的


别抠


  设计模式,既然是模式自然也应被理解为套路。从使用方面来说,我们明白了场景,理解了套路所能应用的场景,我们做个一一对应也就容易了。
  但是现实似乎不是这样的,似乎这里面充满了陷阱,很多情况是为了使用而使用,手里拿着锤子看所有的东西都是钉子。这难道是童年买新玩具新奇感的延续么,我想不是的。我们滥用不是因为我们想去用,而是不知道怎么是正确的用,我们大脑最开始的反应就是试错的思路去处理事情。我们期望经过多次试错找到一个合理的方式去使用此模式,但是这里的问题出现了从量的角度来说是不够的,一个项目的开发不足以涵盖所有模式(因为使用场景不是很多,而可怜的几个场景有能供你使用几个模式呢),我们试错的方式不是立刻显现出来,越到项目的后期越能体现原来设计的好坏。当然当你经历多个项目后,你慢慢的在试错中找到了感觉,也就用了经验,这也是为什么工作经验是重要的。
  难道没有取巧之处么? 至少我认为是有更积极的方式去学习的。第一步,明细,明细要做到知道其是什么不是什么,它解决了你什么问题,它解决的这个问题带来了那些好处同时带来了那些弊端。尤其是弊端是你能接受的么(从数量上,工作的重复程度上去看)。
  第二步,辨析,应用场景的辨析是要明细自己要完成的任务(你要解决的问题),正确的思路是:根据你要解决的问题,找解决问题的公式或者方法,逆向是走不通的。问题是从需求那里得出的(特别像从一道物理题中找出数学模型的过程),我们辨析问题,从中找到找到解决问题的步骤1,2,3. 在单个小问题中找出重复的问题提炼解决问题的办法(模式自然会被使用)。
  
  第一步,看王翔的这书已经足够了。第二步要具体问题具体分析(在看一下分析方面的书)。


相关图书