本人历经半年多的写作,并在清华大学出版社的陈冰编辑和其他相关工作人员的一同努力下,终于能让《大话设计模式》在11月底出版发行了。感谢所有支持我写作的朋友,特别是在我的博客里留言的那些朋友,是你们的肯定才有了我持续创作的动力。也得同时感谢博客园和dudu,因为是这个平台才使得本书有了写作的基础。本书写作将延续《小菜编程成长记》的书写风格,力求做到深入浅出,因此本书既不是一本程序集,也不是一本故事集,而是一本通过故事讲述程序如何设计的方法集。希望本书可以帮助面向对象的初学者更好的去理解和学习设计模式。
《大话设计模式》序.pdf 《大话设计模式》前言.pdf 《大话设计模式》目录.pdf 《大话设计模式》第1章.pdf 《大话设计模式》第29章.pdf
《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(一)
《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(二)
《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(三)
《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(四)
《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(五)
《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(六)
《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(七)
第1章 代码无错就是优?——简单工厂模式.... 1
1.1 面试受挫... 1
1.2 初学者代码毛病... 2
1.3 代码规范... 2
1.4 面向对象编程... 4
1.5 活字印刷,面向对象... 4
1.6 面向对象的好处... 5
1.7 复制vs.复用... 6
1.8 业务的封装... 6
1.9 紧耦合vs.松耦合... 8
1.10 简单工厂模式... 10
1.11 UML类图... 12
第2章 商场促销——策略模式.... 17
2.1 商场收银软件... 17
2.2 增加打折... 18
2.3 简单工厂实现... 19
2.4 策略模式... 22
2.5 策略模式实现... 25
2.6 策略与简单工厂结合... 27
2.7 策略模式解析... 28
第3章 拍摄UFO——单一职责原则.... 30
3.1 新手机... 30
3.2 拍摄... 30
3.3 没用的东西... 31
3.4 单一职责原则... 31
3.5 方块游戏的设计... 31
3.6 手机职责过多吗?... 33
第4章 考研求职两不误——开放-封闭原则.... 34
4.1 考研失败... 34
4.2 开放-封闭原则... 35
4.3 何时应对变化... 36
4.4 两手准备,并全力以赴... 37
第5章 会修电脑不会修收音机?——依赖倒转原则.... 38
5.1 MM请求修电脑... 38
5.2 电话遥控修电脑... 39
5.3 依赖倒转原则... 40
5.4 里氏代换原则... 41
5.5 修收音机... 43
第6章 穿什么有这么重要?——装饰模式.... 44
6.1 穿什么有这么重要?... 44
6.2 小菜扮靓第一版... 45
6.3 小菜扮靓第二版... 47
6.4 装饰模式... 50
6.5 小菜扮靓第三版... 53
6.6 装饰模式总结... 56
第7章 为别人做嫁衣——代理模式.... 57
7.1 为别人做嫁衣!... 57
7.2 没有代理的代码... 58
7.3 只有代理的代码... 60
7.4 符合实际的代码... 61
7.5 代理模式... 63
7.6 代理模式应用... 65
7.7 秀才让小六代其求婚... 66
第8章 雷锋依然在人间——工厂方法模式.... 67
8.1 再现活雷锋... 67
8.2 简单工厂模式实现... 68
8.3 工厂方法模式实现... 69
8.4 简单工厂vs.工厂方法... 71
8.5 雷锋工厂... 72
第9章 简历复印——原型模式.... 77
9.1 夸张的简历... 77
9.2 简历代码初步实现... 78
9.3 原型模式... 80
9.4 简历的原型实现... 82
9.5 浅复制与深复制... 84
9.6 简历的深复制实现... 87
9.7 复制简历vs.手写求职信... 89
第10章 考题抄错会做也白搭——模板方法模式.... 90
10.1 选择题不会做,蒙呗!... 90
10.2 重复=易错+难改... 91
10.3 提炼代码... 93
10.4 模板方法模式... 96
10.5 模板方法模式特点... 98
10.6 主观题,看你怎么蒙... 98
第11章 无熟人难办事?——迪米特法则.... 100
11.1 第一天上班... 100
11.2 无熟人难办事... 100
11.3 迪米特法则... 102
第12章 牛市股票还会亏钱?——外观模式.... 103
12.1 牛市股票还会亏钱?... 103
12.2 股民炒股代码... 104
12.3 投资基金代码... 106
12.4 外观模式... 108
12.5 何时使用外观模式... 110
第13章 好菜每回味不同——建造者模式.... 112
13.1 炒面没放盐... 112
13.2 建造小人一... 113
13.3 建造小人二... 114
13.4 建造者模式... 115
13.5 建造者模式解析... 118
13.6 建造者模式基本代码... 119
第14章 老板回来,我不知道——观察者模式.... 123
14.1 老板回来?我不知道!... 123
14.2 双向耦合的代码... 124
14.3 解耦实践一... 126
14.4 解耦实践二... 128
14.5 观察者模式... 131
14.6 观察者模式特点... 134
14.7 观察者模式的不足... 135
14.8 事件委托实现... 136
14.9 事件委托说明... 139
14.10 石守吉失手机后的委托... 140
第15章 就不能不换DB吗?——抽象工厂模式.... 141
15.1 就不能不换DB吗?... 141
15.2 最基本的数据访问程序... 142
15.3 用了工厂方法模式的数据访问程序... 143
15.4 用了抽象工厂模式的数据访问程序... 146
15.5 抽象工厂模式... 149
15.6 抽象工厂模式的优点与缺点... 151
15.7 用简单工厂来改进抽象工厂... 151
15.8 用反射+抽象工厂的数据访问程序... 154
15.9 用反射+配置文件实现数据访问程序... 157
15.10 无痴迷,不成功... 157
第16章 无尽加班何时休——状态模式.... 158
16.1 加班,又是加班!... 158
16.2 工作状态-函数版... 159
16.3 工作状态-分类版... 160
16.4 方法过长是坏味道... 162
16.5 状态模式... 163
16.6 状态模式好处与用处... 165
16.7 工作状态-状态模式版... 166
第17章 在NBA我需要翻译——适配器模式.... 171
17.1 在NBA我需要翻译!... 171
17.2 适配器模式... 171
17.3 何时使用适配器模式... 174
17.4 篮球翻译适配器... 174
17.5 适配器模式的.NET应用... 178