大话设计模式

大话设计模式
编辑推荐
《大话设计模式》是准备攀登面向对象编程高峰朋友们的引路人和提携者;《大话设计模式》是学习、体会和领悟了众多大师智慧结晶后的图书作品;《大话设计模式》是你深入理解和感受 GoF 的《设计模式》及其它大师作品的必备书籍;《大话设计模式》授之以“鱼”,更授之以“渔”。
感受设计演变过程中所蕴含的大智慧,体会乐与怒的程序人生中值得回味的一幕幕。
设计模式的趣味解读,面向对象的深入剖析。
在诙谐与温馨中做一次面向对象编程思维的体操。
内容简介
本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解 GoF(设计模式的经典名著——Design Patterns:Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者 Erich Gamma、Richard Helm、Ralph Johnson,以及 John Vlissides,这四人常被称为 Gang of Four,即四人组,简称 GoF)总结的 23 个设计模式。本书共分为 29 章。其中,第 1、3、4、5 章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第 2 章,以及第 6 到第 28 章详细讲解了 23 个设计模式;第 29 章是对设计模式的全面总结。附录部分是通过一个例子的演变为初学者介绍了面向对象的基本概念。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的大智慧。
本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。
作者简介
程杰,高级软件工程师 & 高级培训讲师。从事软件开发一线工作近八年时间。曾在申银万国证券公司、上海杨浦区政府、朝华集团下属网游公司、香港晨兴集团等多行业项目开发中担任主程及项目负责人,有丰富的大中型软件开发经验,以及多年的软件设计与项目管理经验。曾任加拿大慧桥培训中心讲师,主持。NET 高级软件工程师的培训工作;早年从事高中数学教学工作,曾在江苏常州重点高中任教时获得过市教学一等奖,这些教学和培训经历让作者对如何以易懂的语言讲解艰深的技术知识有了深刻的理解。他也是“博客园”网站的博客 http://cj723.cnblogs.com/ 的连载文章《小菜编程成长记》的作者。
本书作者集多年实际项目开发经验和丰富教学培训经验于一身,准确把握住编程初学者的视角,以浅显幽默的语言向读者诠释了面向对象设计模式的精髓。
目录
第 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 参考文献