展开全部

主编推荐语

通篇以情景对话的形式,用多个小故事或编程示例来组织讲解GoF总结的23个设计模式。

内容简介

本书共分为29章。其中第1、3、4、5章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第2章,以及第6到第28章详细讲解了23个设计模式;第29章是对设计模式的全面总结。附录部分是通过一个例子的演变为初学者介绍了面向对象的基本概念。

本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解――为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。

目录

  • 版权信息
  • 本书出版后的读者评论
  • 前言
  • 第1章 代码无错就是优?——简单工厂模式
  • 1.1 面试受挫
  • 1.2 初学者代码毛病
  • 1.3 代码规范
  • 1.4 面向对象编程
  • 1.5 活字印刷,面向对象
  • 1.6 面向对象的好处
  • 1.7 复制vs.复用
  • 1.8 业务的封装
  • 1.9 紧耦合vs.松耦合
  • 1.10 简单工厂模式
  • 1.11 UML类图
  • 第2章 商场促销——策略模式
  • 2.1 商场收银软件
  • 2.2 增加打折
  • 2.3 简单工厂实现
  • 2.4 策略模式
  • 2.5 策略模式实现
  • 2.6 策略与简单工厂结合
  • 2.7 策略模式解析
  • 第3章 拍摄UFO——单一职责原则
  • 3.1 新手机
  • 3.2 拍摄
  • 3.3 没用的东西
  • 3.4 单一职责原则
  • 3.5 方块游戏的设计
  • 3.6 手机职责过多吗?
  • 第4章 考研求职两不误——开放-封闭原则
  • 4.1 考研失败
  • 4.2 开放-封闭原则
  • 4.3 何时应对变化
  • 4.4 两手准备,并全力以赴
  • 第5章 会修电脑不会修收音机?——依赖倒转原则
  • 5.1 MM请求修电脑
  • 5.2 电话遥控修电脑
  • 5.3 依赖倒转原则
  • 5.4 里氏代换原则
  • 5.5 修收音机
  • 第6章 穿什么有这么重要?——装饰模式
  • 6.1 穿什么有这么重要?
  • 6.2 小菜扮靓第一版
  • 6.3 小菜扮靓第二版
  • 6.4 装饰模式
  • 6.5 小菜扮靓第三版
  • 6.6 装饰模式总结
  • 第7章 为别人做嫁衣——代理模式
  • 7.1 为别人做嫁衣!
  • 7.2 没有代理的代码
  • 7.3 只有代理的代码
  • 7.4 符合实际的代码
  • 7.5 代理模式
  • 7.6 代理模式应用
  • 7.7 秀才让小六代其求婚
  • 第8章 雷锋依然在人间——工厂方法模式
  • 8.1 再现活雷锋
  • 8.2 简单工厂模式实现
  • 8.3 工厂方法模式实现
  • 8.4 简单工厂vs.工厂方法
  • 8.5 雷锋工厂
  • 第9章 简历复印——原型模式
  • 9.1 夸张的简历
  • 9.2 简历代码初步实现
  • 9.3 原型模式
  • 9.4 简历的原型实现
  • 9.5 浅复制与深复制
  • 9.6 简历的深复制实现
  • 9.7 复制简历vs.手写求职信
  • 第10章 考题抄错会做也白搭——模板方法模式
  • 10.1 选择题不会做,蒙呗!
  • 10.2 重复=易错+难改
  • 10.3 提炼代码
  • 10.4 模板方法模式
  • 10.5 模板方法模式特点
  • 10.6 主观题,看你怎么蒙
  • 第11章 无熟人难办事?——迪米特法则
  • 11.1 第一天上班
  • 11.2 无熟人难办事
  • 11.3 迪米特法则
  • 第12章 牛市股票还会亏钱?——外观模式
  • 12.1 牛市股票还会亏钱?
  • 12.2 股民炒股代码
  • 12.3 投资基金代码
  • 12.4 外观模式
  • 12.5 何时使用外观模式
  • 第13章 好菜每回味不同——建造者模式
  • 13.1 炒面没放盐
  • 13.2 建造小人一
  • 13.3 建造小人二
  • 13.4 建造者模式
  • 13.5 建造者模式解析
  • 13.6 建造者模式基本代码
  • 第14章 老板回来,我不知道——观察者模式
  • 14.1 老板回来?我不知道!
  • 14.2 双向耦合的代码
  • 14.3 解耦实践一
  • 14.4 解耦实践二
  • 14.5 观察者模式
  • 14.6 观察者模式特点
  • 14.7 观察者模式的不足
  • 14.8 事件委托实现
  • 14.9 事件委托说明
  • 14.10 石守吉失手机后的委托
  • 第15章 就不能不换DB吗?——抽象工厂模式
  • 15.1 就不能不换DB吗?
  • 15.2 最基本的数据访问程序
  • 15.3 用了工厂方法模式的数据访问程序
  • 15.4 用了抽象工厂模式的数据访问程序
  • 15.5 抽象工厂模式
  • 15.6 抽象工厂模式的优点与缺点
  • 15.7 用简单工厂来改进抽象工厂
  • 15.8 用反射+抽象工厂的数据访问程序
  • 15.9 用反射+配置文件实现数据访问程序
  • 15.10 无痴迷,不成功
  • 第16章 无尽加班何时休——状态模式
  • 16.1 加班,又是加班!
  • 16.2 工作状态-函数版
  • 16.3 工作状态-分类版
  • 16.4 方法过长是坏味道
  • 16.5 状态模式
  • 16.6 状态模式好处与用处
  • 16.7 工作状态-状态模式版
  • 第17章 在NBA我需要翻译——适配器模式
  • 17.1 在NBA我需要翻译!
  • 17.2 适配器模式
  • 17.3 何时使用适配器模式
  • 17.4 篮球翻译适配器
  • 17.5 适配器模式的.NET应用
  • 17.6 扁鹊的医术
  • 第18章 如果再回到从前——备忘录模式
  • 18.1 如果再给我一次机会……
  • 18.2 游戏存进度
  • 18.3 备忘录模式
  • 18.4 备忘录模式基本代码
  • 18.5 游戏进度备忘
  • 第19章 分公司=一部门——组合模式
  • 19.1 分公司不就是一部门吗?
  • 19.2 组合模式
  • 19.3 透明方式与安全方式
  • 19.4 何时使用组合模式
  • 19.5 公司管理系统
  • 19.6 组合模式好处
  • 第20章 想走?可以!先买票——迭代器模式
  • 20.1 乘车买票,不管你是谁!
  • 20.2 迭代器模式
  • 20.3 迭代器实现
  • 20.4 .NET的迭代器实现
  • 20.5 迭代高手
  • 第21章 有些类也需计划生育——单例模式
  • 21.1 类也需要计划生育
  • 21.2 判断对象是否是null
  • 21.3 生还是不生是自己的责任
  • 21.4 单例模式
  • 21.5 多线程时的单例
  • 21.6 双重锁定
  • 21.7 静态初始化
  • 第22章 手机软件何时统一——桥接模式
  • 22.1 凭什么你的游戏我不能玩
  • 22.2 紧耦合的程序演化
  • 22.3 合成/聚合复用原则
  • 22.4 松耦合的程序
  • 22.5 桥接模式
  • 22.6 桥接模式基本代码
  • 22.7 我要开发“好”游戏
  • 第23章 烤羊肉串引来的思考——命令模式
  • 23.1 吃烤羊肉串!
  • 23.2 烧烤摊vs.烧烤店
  • 23.3 紧耦合设计
  • 23.4 松耦合设计
  • 23.5 松耦合后
  • 23.6 命令模式
  • 23.7 命令模式作用
  • 第24章 加薪非要老总批?——职责链模式
  • 24.1 老板,我要加薪!
  • 24.2 加薪代码初步
  • 24.3 职责链模式
  • 24.4 职责链的好处
  • 24.5 加薪代码重构
  • 24.6 加薪成功
  • 第25章 世界需要和平——中介者模式
  • 25.1 世界需要和平!
  • 25.2 中介者模式
  • 25.3 安理会做中介
  • 25.4 中介者模式优缺点
  • 第26章 项目多也别傻做——享元模式
  • 26.1 项目多也别傻做!
  • 26.2 享元模式
  • 26.3 网站共享代码
  • 26.4 内部状态与外部状态
  • 26.5 享元模式应用
  • 第27章 其实你不懂老板的心——解释器模式
  • 27.1 其实你不懂老板的心
  • 27.2 解释器模式
  • 27.3 解释器模式好处
  • 27.4 音乐解释器
  • 27.5 音乐解释器实现
  • 27.6 料事如神
  • 第28章 男人和女人——访问者模式
  • 28.1 男人和女人!
  • 28.2 最简单的编程实现
  • 28.3 简单的面向对象实现
  • 28.4 用了模式的实现
  • 28.5 访问者模式
  • 28.6 访问者模式基本代码
  • 28.7 比上不足,比下有余
  • 第29章 OOTV杯超级模式大赛——模式总结
  • 29.1 演讲任务
  • 29.2 报名参赛
  • 29.3 超模大赛开幕式
  • 29.4 创建型模式比赛
  • 29.5 结构型模式比赛
  • 29.6 行为型模式一组比赛
  • 29.7 行为型模式二组比赛
  • 29.8 决赛
  • 29.9 梦醒时分
  • 29.10 没有结束的结尾
  • 附录A 培训实习生——面向对象基础
  • A.1 培训实习生
  • A.2 类与实例
  • A.3 构造方法
  • A.4 方法重载
  • A.5 属性与修饰符
  • A.6 封装
  • A.7 继承
  • A.8 多态
  • A.9 重构
  • A.10 抽象类
  • A.11 接口
  • A.12 集合
  • A.13 泛型
  • A.14 委托与事件
  • A.15 客套
  • 附录B 参考文献
  • 读者意见反馈表
展开全部

评分及书评

4.3
12个评分
  • 用户头像
    给这本书评了
    5.0

    每一个设计模式都是从小故事入手,然后一步一步在小菜犯错大鸟启发中引出设计模式。书中有一段讲解这样写,“为了回归的大局,增加一种制度又何尝不可,一个国家,两种制度,这在政治上,是伟大的发明。在软件设计模式中,这种不能修改,但可以扩展的思想也是最重要的一种设计原则,它就是开放 - 封闭原则”,这个例子举得太精彩了。

      转发
      评论
      用户头像
      给这本书评了
      1.0
      作者表达能力太差

      前两章我能忍,第三章第四章实在让人没法再往下看了,举例子没必要其他多余的梗。再说例子举的太差,对话写的尴尬、多余。

        转发
        评论
        用户头像
        给这本书评了
        3.0
        平淡无奇且废话太多

        作为一本讲解设计模式的书,作者耦合了太多的 C# 和 .NET 的知识,很不好。书中的很多例子不具备代表性,为了讲解而讲解,生搬硬套。甚至有些地方可能是有争议的,不推荐阅读。

          转发
          评论
        • 查看全部6条书评

        出版方

        清华大学出版社

        清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。