设计模式笔记
2005-08-29 15:47
246 查看
看了半个月的设计模式,理解还不是很清晰,暂时把自己的笔记放上来,希望大家对我理解过程过的一些问题予以指出,谢谢!
A:创建模式
1.设计模式之Factory(工厂模式)
利用专门的类来实现对目标对象的实例化,替换new A()这样的方法,根据方法的参数值,可以生产出不同的对象实例!
2.设计模式之Prototype(原型模式)
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
Prototype 模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的
细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象
通过请求原型对象拷贝它们自己来实施创建
通过实例化后的子类来还原抽象父类对象的方法,及根据一个子类来对其父类进行实例化。
3.设计模式之Builder
通过接口,构建相关的对象
4.设计模式之Singleton(单态模式)
B:结构模式
5.设计模式之Facade(外观)
对模块采用单一接口接入,就像使用JDBC时,采用一个类来进行,jdbc和数据连接池的操作
6.设计模式之Proxy(代理)
无可避免总要涉及到系统的授权或安全体系,不管你有无意识的使用Proxy,
实际你已经在使用Proxy 了.
在进行某些模块的访问时,通过代理,可以在代理部分,有效的添加对访问有效性以及用户访问权限的控制.
7 Adapter(适配器)
为两个接口不一致的类设计一个类,能够连接这两个类,使这两个类能够一起协调工作!
8 Composite(组合)
为树状结构的数据提供一个便捷的访问通道,通过一个入口,可以快速的找寻到这个节点下面的所有子节点,包括属性以及子容器
适合与论坛中帖子的层次管理模式.
9 Decorator(油漆工)(装饰)
10 Bridge (桥)
将抽象和行为划分开来,各自独立,但能动态的结合.
最明显的应用就是在连接不同数据库时使用的DAO模式,通过不同的实现接口实现对不同数据库的访问
11 FlyWeight(享元)
避免大量拥有相同内容的小类的开销,使大家共享一个类.
C.行为模式
12 Template(模板)
定义算法操作中的骨架,并将一些具体操作延迟到子类实现.类似抽象类,扩展性强
13 Memento(备忘机制)
专门用来保存某个对象的相关属性信息,并可以根据需要对对象进行恢复!
14 Observer(观察者)
及时跟踪监视某一对象,根据需要触发新的事务操作
Java的API中已有相应的接口Java.util.Observer
大致实现过程:
通过编写一个观察对象类,并在被观察对象类中实现对指定要素的观测方法,从而在对象的某个属性发生改变时,观察对象类即触发进行相关的处理.
15 Chain Of Responsibility(职责链)
对某个接口的实现过程,有一个依次顺序处理的过程,先A,后B,再C的处理顺序进行处理,
具体的实例就是GUI设计中,鼠标的触发事件,就是一个依次处理的例子!
16 Command (指令)
类似与将命令封装处理
统一的使用一个接口进行处理
对指令封装,通过一个指令入口,处理一系列的指令执行过程!
17 State(状态模式)
用来修改对象属性,从而在处理对象时,可以根据不同的对象属性进行不同的处理指令.有点象表单处理过程中,表单不同状态!
18 Strategy(策略)
对象行为型模式,主要是定义一系列的算法,然后把这些算法一个个封装为单独的类(有点别扭)
继承于统一算法基类的不同的算法实现类(处理方法),作为计算对象的构造对象,赋值给计算对象,然后同样的后续处理进行指令调度处理,唯一差别就是在规则确定时,分别赋值两种不同的算法实现类!
示例中采用的是在类的构造过程中,通过使用不同的策略类,从而构建不同的类,然后通过调用同样的执行参数,即可达到不同策略的处理指令结果!
19 Mediator(中介者)
通过使用中间对象来封装多个对象的交互行为
最显著的应用,MVC模式中的View Controller就是一种Mediator的应用,它是JSP和服务器上应用程序间的Mediator.
20 Interpreter(解释器)
通过定义语言的文法,以及建立一个解释器来解释该语言中的句子.
21 Visitor(访问者)
作用于某个对象群中各个对象的操作,使用户在不改变这些对象本身的情况下,定义作用于这些对象的新操作
通过定义一个专门的访问者接口,通过被访问者实现这个接口,从而确定被访问者能够实现可访问性!
集合中的某个对象,实现了这个访问者的接口,则可以通过访问者提供的身份类型访问.
A:创建模式
1.设计模式之Factory(工厂模式)
利用专门的类来实现对目标对象的实例化,替换new A()这样的方法,根据方法的参数值,可以生产出不同的对象实例!
2.设计模式之Prototype(原型模式)
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
Prototype 模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的
细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象
通过请求原型对象拷贝它们自己来实施创建
通过实例化后的子类来还原抽象父类对象的方法,及根据一个子类来对其父类进行实例化。
3.设计模式之Builder
通过接口,构建相关的对象
4.设计模式之Singleton(单态模式)
B:结构模式
5.设计模式之Facade(外观)
对模块采用单一接口接入,就像使用JDBC时,采用一个类来进行,jdbc和数据连接池的操作
6.设计模式之Proxy(代理)
无可避免总要涉及到系统的授权或安全体系,不管你有无意识的使用Proxy,
实际你已经在使用Proxy 了.
在进行某些模块的访问时,通过代理,可以在代理部分,有效的添加对访问有效性以及用户访问权限的控制.
7 Adapter(适配器)
为两个接口不一致的类设计一个类,能够连接这两个类,使这两个类能够一起协调工作!
8 Composite(组合)
为树状结构的数据提供一个便捷的访问通道,通过一个入口,可以快速的找寻到这个节点下面的所有子节点,包括属性以及子容器
适合与论坛中帖子的层次管理模式.
9 Decorator(油漆工)(装饰)
10 Bridge (桥)
将抽象和行为划分开来,各自独立,但能动态的结合.
最明显的应用就是在连接不同数据库时使用的DAO模式,通过不同的实现接口实现对不同数据库的访问
11 FlyWeight(享元)
避免大量拥有相同内容的小类的开销,使大家共享一个类.
C.行为模式
12 Template(模板)
定义算法操作中的骨架,并将一些具体操作延迟到子类实现.类似抽象类,扩展性强
13 Memento(备忘机制)
专门用来保存某个对象的相关属性信息,并可以根据需要对对象进行恢复!
14 Observer(观察者)
及时跟踪监视某一对象,根据需要触发新的事务操作
Java的API中已有相应的接口Java.util.Observer
大致实现过程:
通过编写一个观察对象类,并在被观察对象类中实现对指定要素的观测方法,从而在对象的某个属性发生改变时,观察对象类即触发进行相关的处理.
15 Chain Of Responsibility(职责链)
对某个接口的实现过程,有一个依次顺序处理的过程,先A,后B,再C的处理顺序进行处理,
具体的实例就是GUI设计中,鼠标的触发事件,就是一个依次处理的例子!
16 Command (指令)
类似与将命令封装处理
统一的使用一个接口进行处理
对指令封装,通过一个指令入口,处理一系列的指令执行过程!
17 State(状态模式)
用来修改对象属性,从而在处理对象时,可以根据不同的对象属性进行不同的处理指令.有点象表单处理过程中,表单不同状态!
18 Strategy(策略)
对象行为型模式,主要是定义一系列的算法,然后把这些算法一个个封装为单独的类(有点别扭)
继承于统一算法基类的不同的算法实现类(处理方法),作为计算对象的构造对象,赋值给计算对象,然后同样的后续处理进行指令调度处理,唯一差别就是在规则确定时,分别赋值两种不同的算法实现类!
示例中采用的是在类的构造过程中,通过使用不同的策略类,从而构建不同的类,然后通过调用同样的执行参数,即可达到不同策略的处理指令结果!
19 Mediator(中介者)
通过使用中间对象来封装多个对象的交互行为
最显著的应用,MVC模式中的View Controller就是一种Mediator的应用,它是JSP和服务器上应用程序间的Mediator.
20 Interpreter(解释器)
通过定义语言的文法,以及建立一个解释器来解释该语言中的句子.
21 Visitor(访问者)
作用于某个对象群中各个对象的操作,使用户在不改变这些对象本身的情况下,定义作用于这些对象的新操作
通过定义一个专门的访问者接口,通过被访问者实现这个接口,从而确定被访问者能够实现可访问性!
集合中的某个对象,实现了这个访问者的接口,则可以通过访问者提供的身份类型访问.
相关文章推荐
- 设计模式笔记 22. Strategy 策略模式(行为型模式)
- 设计模式学习笔记
- Header First设计模式学习笔记——观察者模式
- Java设计模式笔记(1)单例模式
- C#面向对象设计模式纵横谈 笔记1. 面向对象设计模式与原则
- HeadFir st 设计模式学习笔记21-- 解释者(Inter pr eter)模式拾零
- 设计模式笔记1:单件模式
- 设计模式学习笔记(八)—Template Method模式
- 设计模式学习笔记(一)--Facade外观模式
- 设计模式学习笔记——抽象工厂模式
- 设计模式学习笔记——Mediator中介者模式
- 设计模式C++学习笔记之八(Adapter适配器模式)
- 设计模式学习笔记——工厂方法模式
- 设计模式--笔记
- [设计模式整理笔记 六] 工厂模式与创建者模式总结
- 设计模式学习笔记-模板方法
- 设计模式学习笔记(十)——Decorator装饰模式
- 设计模式C++学习笔记之十八(Visitor访问者模式)
- 设计模式之Proxy模式(笔记)
- 设计模式笔记 24. 设计模式总结