书籍目录
目录
第1章基本概念 1
1.1什么是设计模式 2
1.2设计模式的作用 3
1.3GRASP模式的分类 4
1.4GoF设计模式的分类 4
1.5模式的学习阶段 6
第2章负责任地设计对象——GRASP 9
2.1InformationExpert(信息专家) 11
2.2Creator(创造者) 13
2.3LowCoupling(低耦合) 14
2.4HighCohesion(高内聚) 15
2.5Controller(控制器) 17
2.6Polymorphism(多态) 18
2.7PureFabrication(纯虚构) 19
2.8Indirection(间接) 20
2.9ProtectedVariations(受保护变化) 21
第3章GoF-CreationalDesignPatterns创建型设计模式 23
3.1SimpleFactoryPattern(简单工厂模式) 24
3.1.1定义 24
3.1.2现实例子——国旗生产厂 26
3.1.3C#实例1——电子付款系统 26
3.1.4C#实例2——学校登录系统 29
3.1.5Java实例——手机简单工厂 32
3.1.6优势和缺陷 34
3.1.7应用情景 34
3.2FactoryMethodPattern(工厂方法模式) 35
3.2.1定义 35
3.2.2现实例子——兵工厂 36
3.2.3C#实例——多文档系统 37
3.2.4Java实例——扩展了的手机工厂 41
3.2.5优势和缺陷 44
3.2.6应用情景 44
3.3AbstractFactoryPattern(抽象工厂模式) 45
3.3.1定义 45
3.3.2现实例子——扩展了的兵工厂 48
3.3.3C#实例——大陆生态系统 49
3.3.4Java实例——电脑产品 52
3.3.5优势和缺陷 57
3.3.6应用情景 57
3.4BuilderPattern(建造者模式) 58
3.4.1定义 58
3.4.2现实例子——快餐店 60
3.4.3C#实例——车间造车 61
3.4.4Java实例——建造房屋 65
3.4.5优势和缺陷 69
3.4.6应用情景 70
3.5PrototypePattern(原型模式) 70
3.5.1定义 70
3.5.2现实中的拷贝-粘贴 71
3.5.3C#实例——颜色管理器 72
3.5.4Java实例——简单ToolBar 74
3.5.5ShallowCopy与DeepCopy 76
3.5.6优势和缺陷 82
3.5.7应用情景 82
3.6SingletonPattern(单例模式) 82
3.6.1定义 82
3.6.2现?抵械牡ダ??猈indowsTaskManager 83
3.6.3C#实例——负载均衡控制器 84
3.6.4Java实例——系统日志 86
3.6.5DoubleCheckLocking(双检锁) 89
3.6.6优势和缺陷 93
3.6.7应用情景 93
第4章GoF-StructuralDesignPatterns结构型设计模式 95
4.1AdapterPattern(适配器模式) 96
4.1.1定义 96
4.1.2现实中的实例——电脑电源适配器 97
4.1.3C#实例——化学数据银行 98
4.1.4Java实例——清洁系统 102
4.1.5优势和缺陷 104
4.1.6应用情景 104
4.2BridgePattern(桥接模式) 104
4.2.1定义 104
4.2.2现实中的实例——男人的约会 106
4.2.3C#实例——商业对象与数据对象 107
4.2.4Java实例——不同系统的图像处理 112
4.2.5优势和缺陷 114
4.2.6应用情景 115
4.3CompositePattern(组合模式) 115
4.3.1定义 115
4.3.2组合模式的现实应用——资源管理器 117
4.3.3C#实例——图形树状对象结构 118
4.3.4Java实例——文档格式化 121
4.3.5优势和缺陷 124
4.3.6应用情景 125
4.4DecoratorPattern(装饰模式) 125
4.4.1定义 125
4.4.2现实中的装饰模式——相架 126
4.4.3C#实例——图书馆中的项目 127
4.4.4Java实例——自定义JButton 131
4.4.5优势和缺陷 133
4.4.6应用情景 134
4.5FacadePattern(外观模式) 134
4
1