设计模式之行为模式(一)
2007-02-12 11:58
232 查看
一 Template模式
一句话,就是使用抽象类定义一个实现的框架,把有些实现延迟到子类去实现。
二 Memento模式
这个模式也很容易理解,memento是一个保存另外一个对象内部状态拷贝的对象.
这样以后就可以将该对象恢复到原先保存的状态.
三 Observer模式
AWT中的事件监听器就是采用的这种模式,这个模式主要就是通过监听者这样的一个
属性解耦事件的发生者和事件的响应者。否则,当事件发生时,在事件的发生者的方法
必须调用响应者的处理方法,这样,使得这两者将高度依赖。如果把事件当作消息的话,
这个就是相当于使用消息处理机制解耦消息的发送者和消息的接收者。
四 chain of responsibility
我觉得这跟composite和decorator其实有点相像,层层处理。
该模式主要是用来处理请求的,由于请求种类多,如果放在一个接口里使用不同的
方法去处理各种不同的请求,当请求变化时,由于语言(java)一般为静态,横向扩展
必须修改接口,重新编译,但是如果使用chain of responsibility,把请求的种类的处
理从横向改为纵向。这样多一种请求,只要多添加一个处理接口的实现(处理类的子类)
,而无须更改接口,这符合了设计原则的开闭原则,即变化靠的是继承,而不是更改原
来的代码。
五 command模式
我觉得这跟observer模式有点相像,本来命令的调用者是在调用方法里直接执行命令
接收者的动作的,这里使用命令接口来对这个执行请求进行了封装,解耦了命令执行者和
命令接收者。java的swing菜单都是command模式。命令调用者调用的是菜单命令,而菜单
命令再去调用命令的接收者的相应动作,菜单命令实现了命令接口。
一句话,就是使用抽象类定义一个实现的框架,把有些实现延迟到子类去实现。
二 Memento模式
这个模式也很容易理解,memento是一个保存另外一个对象内部状态拷贝的对象.
这样以后就可以将该对象恢复到原先保存的状态.
三 Observer模式
AWT中的事件监听器就是采用的这种模式,这个模式主要就是通过监听者这样的一个
属性解耦事件的发生者和事件的响应者。否则,当事件发生时,在事件的发生者的方法
必须调用响应者的处理方法,这样,使得这两者将高度依赖。如果把事件当作消息的话,
这个就是相当于使用消息处理机制解耦消息的发送者和消息的接收者。
四 chain of responsibility
我觉得这跟composite和decorator其实有点相像,层层处理。
该模式主要是用来处理请求的,由于请求种类多,如果放在一个接口里使用不同的
方法去处理各种不同的请求,当请求变化时,由于语言(java)一般为静态,横向扩展
必须修改接口,重新编译,但是如果使用chain of responsibility,把请求的种类的处
理从横向改为纵向。这样多一种请求,只要多添加一个处理接口的实现(处理类的子类)
,而无须更改接口,这符合了设计原则的开闭原则,即变化靠的是继承,而不是更改原
来的代码。
五 command模式
我觉得这跟observer模式有点相像,本来命令的调用者是在调用方法里直接执行命令
接收者的动作的,这里使用命令接口来对这个执行请求进行了封装,解耦了命令执行者和
命令接收者。java的swing菜单都是command模式。命令调用者调用的是菜单命令,而菜单
命令再去调用命令的接收者的相应动作,菜单命令实现了命令接口。
相关文章推荐
- java23中设计模式——行为模式——Iterator(点名篇 )
- java设计模式 -------- 行为模式 之 策略模式(2)
- JAVA基础(六)行为类设计模式总结
- 设计模式行为模式(模板方法模式)
- 设计模式大类--行为模式(上)
- 设计模式之禅之行为类PK【策略模式VS状态模式】
- 设计模式---行为类型---访问者
- 设计模式二十四:visitor(访问者)——类行为模式
- 设计模式 行为模式 命令模式 c语言 版本实现
- java设计模式之行为模型模式
- 设计模式之行为模式
- 设计模式---行为类型---迭代器
- GoF 23个经典的设计模式13--行为模式之 责任链模式(未完代续)
- 行为设计模式---命令模式(Command)
- 【设计模式学习笔记十五】【行为模式】【命令模式(Command)】
- Java设计模式(17)——行为模式之观察者模式(Observer)
- 设计模式行为模式Behavioral Patterns之FlexibleService模式
- 设计模式 -- 行为模式
- 设计模式(1)-创建模式、结构模式、行为模式的区别
- 设计模式-行为模式(读书笔记)