软件技巧:设计模式目录
1设计模式概述
1.1计算机软件发展现状2
1.2引入设计模式2的必要性
1.3软件设计的基本原理3
1.3.1高内聚低耦合3
1.3.2面向抽象编程3
1.3.3多用组合少继承4
1.3.4“开关”原则4
1.4设计模式概述4
1.4.1什么是设计模式4?
1.4.2为什么需要设计图案5?
1.4.3如何正确应用设计模式5
1.5设计模式的分类5
1.5.1创作模式6
1.5.2结构模式6
1.5.3行为模式6
1.6学会归纳总结7
第一部分创作模式
2曹操献刀:厂法模式11
2.1三国故事:曹操祭刀12
2.2模式定义13
2.3故事13中的模式分析
2.3.1故事中的角色13
2.3.2抽象分析方法14
2.3.3工厂方法模式的静态建模15
2.4工厂方法模式实现17的故事
2.4.1创建产品17
2.4.2工厂的建立19
2.4.3故事情节的历史再现21
2.4.4使用八星包道的测试模式22
2.5设计原则
2.6使用场合28
2.7本章第29点
3肯德基:抽象工厂31
3.1肯德基的故事32
3.2模式定义33
3.3故事中的模式分析33
故事中的角色33
抽象分析34
3.3.3抽象工厂的静态建模
3.4抽象工厂故事的实现36
3.4.1抽象食品的建立36
3.4.2为不同的食物建立抽象基类37
3.4.3创造特定的食物40
3.4.4工厂的建立
3.4.5创建客户类别45
3.4.6故事情节的呈现48
3.5设计原则49
3.6使用场合50
3.7本章的要点53
4手机套装:builder模式54
4.1手机包55
4.2模式定义56
4.3故事模式分析56
4.3.1角色分析56
4.3.2构建器模式57的静态建模
4.4模式实现58
4 . 4 . 1创建产品-手机包59
4.4.2建立抽象生成器61
4.4.3特定建筑商的设立62
4.4.4创建导师65
4.4.5让客户订购手机套餐66
4.4.6如何简化构建器的实现68
4.5设计原则68
4.6使用场合70
4.7本章要点73
5大学生步入社会:原型模型75
5.1大学生步入社会76
5.2模式定义77
5.3大学生故事的模式分析78
5.3.1故事情节分析78
5.3.2原型模式的静态建模78
5.4大学生故事的原型模式实现80
5.4.1原型编制81
5.4.2创建工厂以生成原型对象84
5.4.3大学生初入社会时的生活。
5.5设计原则
5.6使用场合95
5.7本章要点96
6课堂互动:单例模式98
6.1 99级故事
6.2模式定义100
6.3模式分析101
6.4模式实现102
6.4.1实现1:创建一个具有同步线程安全性的singleton对象102。
6.4.2实现2:创建一个全局类对象的实例作为singleton对象106。
6.4.3改进:多案例模式实现107。
6.5设计原则112
6.6用法112
6.7本章要点114
结构模型的第二部分
7电源转换:适配器模式117
7.1生活适配器118
7.2模式定义118
7.3模式分析119
7.3.1适配器中的角色119
7.3.2静态建模119
7.4模式实现120
7.4.1抽象供电机构121
7.4.2建立220V电源122。
7.4.3创建12V电源123
7.4.4测试220V电源和12V电源125。
7.4.5对象适配器126的实现
7.4.6类适配器模式实现129
7.5设计原则132
7.6用法133
7.7本章要点135
8个开关和灯:桥模式137
8.1开关和灯138
8.2模式定义139
8.3综合分析139
8.4 140的概括
8.4.1建立一个抽象开关141。
8.4.2电灯实现142
8.4.3客户端测试145
8.4.4拓展功能的思路146
8.5桥梁模式分析法147
8.6开关和电灯的桥接方式实现147。
8.6.1创建灯光接口147。
8.6.2创建开关148
8.6.3电灯实现151
客户端测试153
8.7设计原则155
8.8使用场合156
8.9本章要点157
9公司层级:组合模式159
9.1公司层级160
9.2模式定义160
9.3综合分析161
9.4泛化实现162
9.4.1创建普通员工162
9.4.2创建经理164
客户端测试168
9.4.4思考系统结构171
9.5组合模式分析法171
9.6公司结构组合模式实现172
9.6.1建立员工抽象172
9.6.2创建经理175
9.6.3创建普通员工177
客户端测试179
9.7设计原则182
9.8用法183
9.9本章要点184
10染色馒头:装饰模式186
10.1染馒头事件187
10.2模式定义188
10.3概化分析188
10.4泛化实现189
10.4.1创建馒头接口189
10.4.2普通馒头190
10.4.3染色馒头193
10.4.4甜馒头195
10.4.5如何制作甜玉米馒头199
10.5装饰图案分析方法199
10.6染色馒头的裱花模式实现200
10.6.1创建抽象装饰器200
10.6.2创建装饰202
10.6.3生产甜玉米馒头204
10.7设计原则206
10.8使用场合207
10.9本章要点209
11美食世界:外观模式211
11.1美食世界212
11.2模式定义213
11.3归纳分析214
11.4泛化实现214
11.4.1创建糖醋排骨界面214。
11.4.2糖醋排骨实现了215。
11.4.3客户端测试216
11.5外观模式分析方法218
11.5.1让厨师给我们做饭218
11.5.2外观图案静态建模218
11.6糖醋排骨的外观模式实现219。
11.6.1建立外观门面219。
客户端测试221
11.7设计原理222
11.8使用场合224
11.9本章要点227
12五子棋游戏:享受袁模式229
12.1五子棋游戏230
12.2架构定义231
12.3模式分析231
12 . 3 . 1五子棋游戏分析231
静态建模232
12.4模式实现233
12.4.1创建一个抽象棋子233
12.4.2象棋实现234
创建一个象棋工厂234
客户端测试236
12.4.5如何实现棋子238的位置
12.4.6测试棋子242的外部状态
12.5设计原则244
12.6使用场合245
12.7本章要点247
13葡萄酒分销:代理模式249
1酒剂250
13.2模式定义250
13.3模式分析251
消费者购买行为分析251
13.3.2静态建模
13.4模式实现252
创建一个葡萄酒制造商253
13.4.2从红酒厂购买红酒254
创建一个葡萄酒代理商255
从红酒代理商处购买红酒
13.5设计原则258
13.6使用场合259
13.7本章要点265
第三部分是行为模型
14学生生病:责任链模型269
这个学生生病了
14.2架构定义271
14.3一般抽象分析271
学生请假流程分析271
14.3.2抽象静态建模
14.4通用抽象实现273
1学生请假273
14.4.2创建抽象的离开消息处理程序275
14.4.3休假处理器277的具体实现
客户端测试279
如何面对变化282
14.4.6用外观包装改变的部分283。
14.5责任链模式分析法288
14.5.1是如何实现消息传递的呢?56636.86666666661
责任链模式的静态建模288
14.6休假流程责任链模式的实现289
14.6.1抽象修改289
14.6.2改进具体的消息处理程序291
14.6.3在外观上设置消息处理责任链292。
客户端测试296
14.7设计原则296
14.8使用场合297
14.9本章要点299
15邮局:指挥模式301
15.1生活中的邮局302
15.2模式定义303
15.3模式分析303
15.3.1邮局示例分析303
静态建模303
15.4模式实现304
15.4.1创建消息接收者305
15.4.2创建中间角色邮局305
15.4.3创建消息发送者307
让邮局开始工作
优化我们的设计
15.5设计原则
15.6使用场合313
15.7本章要点316
16创建您自己的语言:解释器模式318
创建您自己的语言解释器319
16.2模式定义320
16.3模式分析320
16 . 3 . 1“Myida”语言分析320
16 . 3 . 2“myida”语言解释器原理321
16.4模式实现323
创建上下文环境323
16.4.2创建解析表达式326
16.4.3让“myida”语言解释器开始工作336
16.5设计原理338
16.6使用场合339
16.7本章要点341
17循环遍历:迭代器模式343
17.1让迭代器替换循环344。
17.2模式定义345
17.3模式分析345
17.3.1如何遍历集合对象345?
17.3.2迭代器模式静态建模346
17.4模式实现347
17.4.1人员信息实现348
17.4.2实施人员大会349
17.4.3迭代器实现352
17.4.4让迭代器遍历集合对象354。
17.4.5迭代器如何面对变化357
17.4.6客户端360怎么了
17.5设计原则362
17.6使用场合362
17.7本章要点364
18多人聊天室:调解员模式366
18.1多人聊天室367
18.2模式定义368
18.3模式分析368
多人聊天室368的结构分析
18.3.2静态建模369
18.4模式实现370
创建用户界面370
18.4.2创建调解员371
18.4.3创建用户373
运行多人聊天室377
18.5设计原理380
18.6使用场合380
18.7本章要点382
19通关游戏:纪念品图案384。
19.1通关游戏385
19.2模式定义385
19.3模式分析386
纪念品图案386的特征
19.3.2纪念品图案静态建模386
19.4模式实现387
19.4.1白盒纪念品图案实现388
19.4.2黑盒纪念品图案实现396
19.5设计原则404
19.6使用场合405
19.7本章要点407
20高温警告:观察者模式409
20.1高温预警系统10
20.2模式定义411
20.3模式分析411
20.3.1高温预警过程分析411
20.3.2静态建模411
20.4模式实现412
20 . 4 . 1创建抽象角色413
20.4.2具体主题的实现
20.4.3具体观察者认识到419
20.4.4让系统开始运行421
20.5设计原则
20.6使用场合423
20.7本章要点426
21文档编辑模式切换:状态模式428
21.1文档编辑器中的模式切换429
21.2模式定义430
21.3模式分析430
21.4模式实现431
21.4.1创建空白上下文环境431
21.4.2创建状态接口431
21.4.3改善上下文内容433
21.4.4创建特定状态434
21.4.5客户端测试437
21.5设计原则440
21.6使用场合440
21.7本章要点442
22商场促销:战略模式443
22.1商场促销商品444
22.2模式定义445
22.3模式分析445
22.3.1商品促销策略分析
22.3.2策略模式的静态建模446
22.4模式实现446
22.4.1创建策略接口447
22.4.2创建特定策略448
22.4.3创建上下文环境450
22.4.4消费者购物消费451
22.4.5策略模式和条件判断的比较454
22.5设计原则
22.6使用场合456
22.7本章要点459
23生活行为:模板方法模式461
23.1日常生活行为462
23.2模式定义463
23.3模式分析463
23.3.1生活行为分析463
静态建模464
23.4模式实现465
23.4.1建立算法框架465
23.4.2创建具体的实施方案467
23.4.3客户端测试469
23.5设计原则471
23.6使用场合472
23.7本章要点475
24公司层次结构:访问者模式477
24.1公司层级478
24.2模式定义479
24.3模式分析479
24.3.1组合模式审查479
24.3.2访客模式分析480
24.3.3访客模型481的静态建模
24.4模式实现483
24.4.1员工实现483
24.4.2访问者实施488
24.4.3让员工接待访客490
24.4.4客户端测试491
24.4.5考虑扩展494
24.5设计原则
24.6使用场合499
24.7本章要点502
25设计模式摘要504
为什么要学习设计模式505
25.1.1让工作更轻松505
25.1.2让程序优雅507
学习设计原理507
25.2设计模式的六个原则509
25.2.1“开关”原理(OCP) 509
25.2.2单一责任原则(SRP) 519
25.2.3依赖性倒置原则(DIP) 527
25.2.4接口隔离原则(ISP) 536
25.2.5里克特替代原则(LSP) 543
25.2.6迪米特里定律(LoD) 544
25.3勤于思考,善于总结553
25.3.1定力、心力和信心553
做一个有思想的人
实践出真知
26 MVC设计实践556
26.1让你思维活跃557
26.2如何设计MVC框架557
26.3第一个MVC框架——Joker MVC 558
环境介绍558
26.3.2 MVC启航558
26.3.3 Joker MVC架构分析563
26.3.4 Joker MVC架构实现566
26.3.5发布joker-1.0部署测试599