资源说明:很不错的一本书,强烈推荐,
C#设计模式(1) 4
一、 C# 面向对象程序设计复习 5
二、 设计模式举例 5
三、 先有鸡还是先有蛋? 7
四、 大瓶子套小瓶子还是小瓶子套大瓶子? 8
五、 .net本质 9
C#设计模式(2) 11
一、 "开放-封闭"原则(OCP) 12
二、 里氏代换原则(LSP) 12
C#设计模式(3) 19
三、 依赖倒置原则(DIP) 19
四、 接口隔离原则(ISP) 20
五、 合成/聚合复用原则(CARP) 21
六、 迪米特法则(LoD) 22
C#设计模式(4)-Simple Factory Pattern 24
一、 简单工厂(Simple Factory)模式 24
二、 Simple Factory模式角色与结构: 24
三、 程序举例: 25
四、 Simple Factory模式演化 27
五、 优点与缺点: 29
C#设计模式(5)-Factory Method Pattern 30
一、 工厂方法(Factory Method)模式 30
二、 Factory Method模式角色与结构: 30
三、 程序举例: 31
四、 工厂方法模式与简单工厂模式 33
五、 Factory Method模式演化 34
六、 Factory Method模式与其它模式的关系 35
七、 另外一个例子 35
C#设计模式(6)-Abstract Factory Pattern 38
一、 抽象工厂(Abstract Factory)模式 38
二、 Abstract Factory模式的结构: 39
三、 程序举例: 41
四、 在什么情形下使用抽象工厂模式: 44
五、 抽象工厂的起源 45
六、 Abstract Factory模式在实际系统中的实现 46
七、 "开放-封闭"原则 50
C#设计模式(7)-Singleton Pattern 50
一、 单例(Singleton)模式 50
二、 Singleton模式的结构: 51
三、 程序举例: 51
四、 在什么情形下使用单例模式: 52
五、 Singleton模式在实际系统中的实现 53
六、 C#中的Singleton模式 55
C#设计模式(8)-Builder Pattern 57
一、 建造者(Builder)模式 57
二、 Builder模式的结构: 58
三、 程序举例: 58
四、 建造者模式的活动序列: 62
五、 建造者模式的实现: 62
六、 建造者模式的演化 68
七、 在什么情况下使用建造者模式 69
C#设计模式(9)-Prototype Pattern 70
一、 原型(Prototype)模式 70
二、 Prototype模式的结构: 71
三、 程序举例: 71
四、 带Prototype Manager的原型模式 73
五、 浅拷贝与深拷贝 77
六、 Prototype模式的优点与缺点 79
C#设计模式(10)-Adapter Pattern 80
一、 适配器(Adapter)模式 80
二、 类的Adapter模式的结构: 81
三、 类的Adapter模式示意性实现: 81
四、 对象的Adapter模式的结构: 83
五、 对象的Adapter模式示意性实现: 84
六、 在什么情况下使用适配器模式 85
七、 一个实际应用Adapter模式的例子 85
八、 关于Adapter模式的讨论 87
C#设计模式(11)-Composite Pattern 88
一、 合成(Composite)模式 88
二、 合成模式概述 88
三、 安全式的合成模式的结构 90
四、 安全式的合成模式实现 91
五、 透明式的合成模式结构 93
六、 透明式的合成模式实现 94
七、 使用合成模式时考虑的几个问题 97
八、 和尚的故事 98
九、 一个实际应用Composite模式的例子 98
C#设计模式(12)-Decorator Pattern 101
一、 装饰(Decorator)模式 101
二、 装饰模式的结构 102
三、 装饰模式示例性代码 103
四、 装饰模式应当在什么情况下使用 106
五、 装饰模式实际应用的例子 106
六、 使用装饰模式的优点和缺点 110
七、 模式实现的讨论 111
八、 透明性的要求 111
九、 装饰模式在.NET中的应用 112
C#设计模式(13)-Proxy Pattern 113
一、 代理(Proxy)模式 113
二、 代理的种类 114
三、 远程代理的例子 114
四、 代理模式的结构 115
五、 代理模式示例性代码 115
六、 高老庄悟空降八戒 117
七、 不同类型的代理模式 118
八、 代理模式实际应用的例子 119
设计模式(14)-Flyweight Pattern 122
一、 享元(Flyweight)模式 122
二、 单纯享元模式的结构 122
三、 单纯享元模式的示意性源代码 123
四、 复合享元模式的结构 125
五、 一个咖啡摊的例子 127
六、 咖啡屋的例子 130
七、 享元模式应当在什么情况下使用 133
八、 享元模式的优点和缺点 134
设计模式(15)-Facade Pattern 134
一、 门面(Facade)模式 134
二、 门面模式的结构 134
三、 门面模式的实现 135
四、 在什么情况下使用门面模式 135
五、 一个例子 136
六、 使用门面模式的设计 140
设计模式(16)-Bridge Pattern 144
一、 桥梁(Bridge)模式 144
二、 桥梁模式的结构 145
三、 桥梁模式的示意性源代码 146
四、 调制解调器问题 149
五、 另外一个实际应用Bridge模式的例子 153
六、 在什么情况下应当使用桥梁模式 158
设计模式(17)-Chain of Responsibility Pattern 158
一、 职责链(Chain of Responsibility)模式 160
二、 责任链模式的结构 160
三、 责任链模式的示意性源代码 160
四、 纯的与不纯的责任链模式 163
五、 责任链模式的实际应用案例 163
六、 责任链模式的实现 168
设计模式(18)-Command Pattern 168
一、 命令(Command)模式 168
二、 命令模式的结构 168
三、 命令模式的示意性源代码 169
四、 玉帝传美猴王上天 172
五、 命令模式的实现 172
六、 命令模式的实际应用案例 173
七、 在什么情况下应当使用命令模式 177
八、 使用命令模式的优点和缺点 178
设计模式(19)-Observer Pattern 178
一、 观察者(Observer)模式 178
二、 观察者模式的结构 179
三、 观察者模式的示意性源代码 180
四、 C#中的Delegate与Event 183
五、 一个实际应用观察者模式的例子 187
六、 观察者模式的优缺点 191
设计模式(20)-Visitor Pattern 192
一、 访问者(Visitor)模式 192
二、 访问者模式的结构 193
三、 示意性源代码 194
四、 一个实际应用Visitor模式的例子 198
五、 在什么情况下应当使用访问者模式 202
六、 使用访问者模式的优点和缺点 203
设计模式(21)-Template Method Pattern 204
一、 模板方法(Template Method)模式 204
二、 模版方法模式的结构 204
三、 模板方法模式的示意性代码 205
四、 继承作为复用的工具 207
五、 一个实际应用模板方法的例子 208
六、 模版方法模式中的方法 210
七、 重构的原则 211
设计模式(22)-Strategy Pattern 211
一、 策略(Strategy)模式 211
二、 策略模式的结构 212
三、 示意性源代码 212
四、 何时使用何种具体策略角色 215
五、 一个实际应用策略模式的例子 215
六、 在什么情况下应当使用策略模式 218
七、 策略模式的优点和缺点 218
八、 其它 219
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。