目录


第1章 基本概念 1.
1.1 什么是设计模式 2
1.2 设计模式的作用 3
1.3 GRASP模式的分类 4
1.4 GoF设计模式的分类 4
1.5 模式的学习阶段 6
第2章 负责任地设计对象——GRASP 9
2.1 Information Expert(信息专家) 11
2.2 Creator(创造者) 13
2.3 Low Coupling(低耦合) 14
2.4 High Cohesion(高内聚) 15
2.5 Controller(控制器) 17
2.6 Polymorphism(多态) 18
2.7 Pure Fabrication(纯虚构) 19
2.8 Indirection(间接) 20
2.9 Protected Variations(受保护变化) 21
第3章 GoF-Creational Design Patterns创建型设计模式 23
3.1 Simple Factory Pattern(简单工厂模式) 24
3.1.1 定义 24
3.1.2 现实例子——国旗生产厂 26
3.1.3 C#实例1——电子付款系统 26
3.1.4 C#实例2——学校登录系统 29
3.1.5 Java实例——手机简单工厂 32
3.1.6 优势和缺陷 34
3.1.7 应用情景 34
3.2 Factory Method Pattern(工厂方法模式) 35
3.2.1 定义 35
3.2.2 现实例子——兵工厂 36
3.2.3 C#实例——多文档系统 37
3.2.4 Java实例——扩展了的手机工厂 41
3.2.5 优势和缺陷 44
3.2.6 应用情景 44
3.3 Abstract Factory Pattern(抽象工厂模式) 45
3.3.1 定义 45
3.3.2 现实例子——扩展了的兵工厂 48
3.3.3 C#实例——大陆生态系统 49
3.3.4 Java实例——电脑产品 52
3.3.5 优势和缺陷 57
3.3.6 应用情景 57
3.4 Builder Pattern(建造者模式) 58
3.4.1 定义 58
3.4.2 现实例子——快餐店 60
3.4.3 C#实例——车间造车 61
3.4.4 Java实例——建造房屋 65
3.4.5 优势和缺陷 69
3.4.6 应用情景 70
3.5 Prototype Pattern(原型模式) 70
3.5.1 定义 70
3.5.2 现实中的拷贝-粘贴 71
3.5.3 C#实例——颜色管理器 72
3.5.4 Java实例——简单ToolBar 74
3.5.5 Shallow Copy与Deep Copy 76
3.5.6 优势和缺陷 82
3.5.7 应用情景 82
3.6 Singleton Pattern(单例模式) 82
3.6.1 定义 82
3.6.2 现实中的单例——Windows Task Manager 83
3.6.3 C#实例——负载均衡控制器 84
3.6.4 Java实例——系统日志 86
3.6.5 Double Check Locking(双检锁) 89
3.6.6 优势和缺陷 93
3.6.7 应用情景 93
第4章 GoF-Structural Design Patterns结构型设计模式 95
4.1 Adapter Pattern(适配器模式) 96
4.1.1 定义 96
4.1.2 现实中的实例——电脑电源适配器 97
4.1.3 C#实例——化学数据银行 98
4.1.4 Java实例——清洁系统 102
4.1.5 优势和缺陷 104
4.1.6 应用情景 104
4.2 Bridge Pattern(桥接模式) 104
4.2.1 定义 104
4.2.2 现实中的实例——男人的约会 106
4.2.3 C#实例——商业对象与数据对象 107
4.2.4 Java实例——不同系统的图像处理 112
4.2.5 优势和缺陷 114
4.2.6 应用情景 115
4.3 Composite Pattern(组合模式) 115
4.3.1 定义 115
4.3.2 组合模式的现实应用——资源管理器 117
4.3.3 C#实例——图形树状对象结构 118
4.3.4 Java实例——文档格式化 121
4.3.5 优势和缺陷 124
4.3.6 应用情景 125
4.4 Decorator Pattern(装饰模式) 125
4.4.1 定义 125
4.4.2 现实中的装饰模式——相架 126
4.4.3 C#实例——图书馆中的项目 127
4.4.4 Java实例——自定义JButton 131
4.4.5 优势和缺陷 133
4.4.6 应用情景 134
4.5 Facade Pattern(外观模式) 134
4.5.1 定义 134
4.5.2 现实中的实例——顾客服务员 135
4.5.3 C#实例——抵押申请审核 136
4.5.4 Java实例——冲茶 139
4.5.5 优势和缺陷 143
4.5.6 应用情景 143
4.6 Flyweight Pattern(轻量级模式) 144..
4.6.1 定义 144
4.6.2 实例——中游的四国军棋 146
4.6.3 C#实例——文档编辑器 147
4.6.4 Java实例——装载图像 151
4.6.5 优势和缺陷 154
4.6.6 应用情景 154
4.7 Proxy Pattern(代理模式) 154
4.7.1 定义 154
4.7.2 几个现实中的实例 156
4.7.3 C#实例——数学代理 158
4.7.4 Java实例——Socket回声 160
4.7.5 优势和缺陷 165
4.7.6 应用情景 165
第5章 GoF-Behavioral Design Patterns行为型设计模式 167
5.1 Chain of Responsibility(责任链模式) 168
5.1.1 定义 168
5.1.2 现实中的实例——军情的传递 169
5.1.3 C#实例——采购分级审批 170
5.1.4 Java实例——智能大厦安全系统 174
5.1.5 优势和缺陷 178
5.1.6 应用情景 178
5.2 Command Pattern(命令模式) 179
5.2.1 定义 179
5.2.2 现实中的实例——餐馆订菜 180
5.2.3 C#实例——简单计算器 181
5.2.4 Java实例——总开关 185
5.2.5 优势和缺陷 189
5.2.6 应用情景 189
5.3 Interpreter Pattern(解释器模式) 190
5.3.1 定义 190
5.3.2 现实示例——音乐符号 192
5.3.3 C#实例——中国金钱大写转换 192
5.3.4 Java实例——自定义程序解释器 197
5.3.5 优势和缺陷 204
5.3.6 应用情景 205
5.4 Iterator Pattern(迭代器模式) 205
5.4.1 定义 205
5.4.2 现实示例——电视节目选择器 206
5.4.3 C#实例——遍历例子 207
5.4.4 Java实例——两个迭代器 211
5.4.5 优势和缺陷 213
5.4.6 应用情景 214
5.5 Mediator Pattern(中介者模式) 214
5.5.1 定义 214
5.5.2 现实示例——机场控制塔 215
5.5.3 C#实例——聊天室 216
5.5.4 Java实例——多线程通信 220
5.5.5 优势和缺陷 223
5.5.6 应用情景 223
5.6 Memento Pattern(备忘录模式) 223
5.6.1 定义 223
5.6.2 现实示例——音响均衡器 226
5.6.3 C#实例——销售目标 226
5.6.4 Java实例——多次Undo(取消)操作 231
5.6.5 优势和缺陷 236
5.6.6 应用情景 236
5.7 Observer Pattern(观察者模式) 236
5.7.1 定义 236
5.7.2 现实例子——拉登现身了 238
5.7.3 C#实例——猫和老鼠 238
5.7.4 C#实例——股票变化 241
5.7.5 Java实例——监控系统 245
5.7.6 优势和缺陷 248
5.7.7 应用情景 248
5.8 State Pattern(状态模式) 248
5.8.1 定义 248
5.8.2 现实例子——心情好坏 250
5.8.3 C#实例——账户分类 250
5.8.4 Java实例——汽车的变速档 258
5.8.5 优势和缺陷 261
5.8.6 应用情景 261
5.9 Strategy Pattern(策略模式) 261
5.9.1 定义 261
5.9.2 现实例子——去机场的策略 263
5.9.3 C#实例——排序方法 263
5.9.4 Java实例——多格式输出 266
5.9.5 优势和缺陷 272
5.9.6 应用情景 272
5.10 Template Method Pattern(模板方法模式) 272
5.10.1 定义 272
5.10.2 现实例子——厨师烹调 274
5.10.3 C#实例——数据库连接模板 274
5.10.4 Java实例——冒泡排序模板 277
5.10.5 优势和缺陷 280
5.10.6 应用情景 280
5.11 Visitor Pattern(访问者模式) 280
5.11.1 定义 280
5.11.2 现实例子——收银员收银计费 282
5.11.3 C#实例——人事评估 283
5.11.4 Java实例——维修工程师检查车辆 287
5.11.5 优势和缺陷 291
5.11.6 应用情景 291
第6章 模式的综合应用 293
6.1 Java实例——扩展的日志记录器 294
6.2 C#实例——存储分析器 298
6.3 用模式生成程序架构 316
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值