《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:职责链接口
来源:互联网 发布:java 架构师培训课程 编辑:程序博客网 时间:2024/06/07 06:49
示例:职责链接口
说明:
(1)、定义
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
(2)、结构
对象: * Handler:处理对象。定义一个处理请求的接口。(可选)实现后继链。 * ConcreteHandler:具体处理对象。处理它所负责的请求。可访问它的后继者。如果可处理该请求,就处理之;否则将该请求转发给它的后继者。 客户端: Client:向链上的具体处理者(ConcreteHandler)对象提交请求。
代码:
unit uChainOfResponsibility;
interface
uses
Dialogs;
type
THandler = class
private
FSuccessor: THandler;
public
constructor Create(const ASuccessor: THandler = nil);
//---
procedure HandleRequest; virtual;
end;
TConcreteHandler1 = class(THandler)
public
procedure HandleRequest; override;
end;
TConcreteHandler2 = class(THandler)
public
procedure HandleRequest; override;
end;
implementation
constructor THandler.Create(const ASuccessor: THandler = nil);
begin
FSuccessor := ASuccessor;
end;
procedure THandler.HandleRequest;
begin
if assigned(FSuccessor) then
FSuccessor.HandleRequest
end;
procedure TConcreteHandler1.HandleRequest;
begin
ShowMessage('ConcreteHandler1');
//---
inherited;
end;
procedure TConcreteHandler2.HandleRequest;
begin
ShowMessage('ConcreteHandler2');
//---
inherited;
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
var
AHandler1: TConcreteHandler1;
AHandler2: TConcreteHandler2;
begin
AHandler2 := TConcreteHandler2.Create;
AHandler1 := TConcreteHandler1.Create(AHandler2);
try
AHandler1.HandleRequest;
finally
AHandler1.Free;
AHandler2.Free;
end;
end;
- 《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:职责链接口
- 《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:帮助机制
- 《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:doesNotUnderstand机制
- 《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:表示请求(使用处理函数)
- 《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:表示请求(使用请求对象)
- 《GOF设计模式》学习笔记--职责链Chain Of Responsibility
- GOF设计模式之CHAIN OF RESPONSIBILITY(职责链)
- 设计模式—Chain of Responsibility职责链模式
- Chain of Responsibility(职责链设计模式)
- 设计模式之对象行为型模式 — CHAIN OF RESPONSIBILITY (职责链)模式
- 重温设计模式(三)——职责链模式(chain of responsibility) [转载]
- 重温设计模式(三)——职责链模式(chain of responsibility)
- 重温设计模式(三)——职责链模式(chain of responsibility)
- Java设计模式——职责链模式(Chain of Responsibility)
- 设计模式学习笔记——Chain of Responsibility职责链模式
- 设计模式学习笔记(十九)—Chain of Responsibility职责链模式
- 设计模式学习笔记(十九)—Chain of Responsibility职责链模式
- 设计模式的征途—14.职责链(Chain of Responsibility)模式
- Linux—— Posix IPC
- oracle 判断字段是不否全为数字
- 近期项目总结之类型转换
- UIA 统一身份认证
- eclipse中jvm内存的设置
- 《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:职责链接口
- 关于struts.xml中的namespace的一些疑问
- word复制图片 导致桌面图标变成蓝色阴影怎么都去不掉
- hdoj1005
- 不用中间变量,交换两个变量的值的方法
- 《GOF设计模式》—职责链(CHAIN OF RESPONSIBILITY)—Delphi源码示例:帮助机制
- Struts2配置详解
- 还原IE的*.mht文件关联
- MySQL 字段类型说明