软件技巧:设计模式目录

目录

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