第一章 理解设计模式
1.1 模式的定义
模式是 从解决具体问题抽象出来的,这种具体问题 在特定的上下文中重复出现。
-
模式不仅仅是解决方案.模式 体现了平衡的思想,模式主要包括以下组成部分
1.2 GOF的设计与模式
GOF设计模式与现代模式的理论上的区别和对理解的影响。
容易造成误解的模式名称
- 工厂与工厂方法 .[枚举].集合本身并不是工厂类,但是采用了工厂方法,获得对自身进行遍历的枚举数。
- 生成器与生成器模式
- 生成器是生成器模式的一部分.这个模式的另一个关键部分是导航器,离开导航器,模式是不完整的。很多生成器的场合都没有采用生成器模式。没有导航器的存在,说明没有构建过程的复用,这是生成器模式的关键。
- 桥接与桥接模式
- 桥接模式 的作用是 将逻辑与具体的实现分开。这里的桥接器是逻辑和实现抽线的组合。 如DataAdapter 是 ADO.NET 中的重要组成部分,起到了数据库和DbSet之间桥接的作用。但是并没有采用桥接模式。
- 状态与状态模式
- 封装不同状态下,相同接口的不同行为的内涵。
- 适配器与适配器模式
- 适配器模式:解决两个类接口不一致的问题。
- 适配器:解决各种形式不兼容。如数据库适配器,解决数据库结构不一致问题。通信适配器,解决通信协议不一致问题。通常,适配器没有用到适配器模式。
- 装饰器与装饰器模式
- 装饰器模式:被装饰完成后的对象和完成前的对象有相同的接口,所扩充的是职责,但是接口没有改变。
- 装饰器:如果装饰器的引入使接口发生了改变,就不再是装饰器模式。
- 代理与代理模式
- 代理模式:接口必须相同。客户程序不需要知道代理的存在,也不需要改变接口。
- 代理:如一个局域网安装了代理服务器,浏览器必须知道服务器的位置和端口。采用DHCP的路由器,更像代理,浏览器不知道路由的存在。