《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:适配器接口
来源:互联网 发布:anywhere远程控制软件 编辑:程序博客网 时间:2024/04/28 17:41
示例:适配器接口
说明:
(1)、定义
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
(2)、结构
对象匹配器依赖于对象组合,如下图所示。
目标Target:定义Client使用的与特定领域相关的接口。
适配器Adapter:对Adaptee的接口与Target接口进行适配。
被适配者Adaptee:定义一个已经存在的接口,这个接口需要适配。
客户端Client:与符合Target接口的对象协同。
协作:Client在Adapter实例上调用一些操作。接着适配器调用Adaptee的操作实现这个请求。
代码:
unit uAdapter;
interface
uses
Dialogs;
type
TTarget = class(TObject)
procedure Request; virtual; abstract;
end;
TAdaptee = class
procedure SpecificRequest;
end;
TAdapter = class(TTarget)
procedure Request; override;
private
FAdaptee: TAdaptee;
public
constructor Create;
destructor Destroy; override;
end;
implementation
procedure TAdaptee.SpecificRequest;
begin
ShowMessage('123');
end;
constructor TAdapter.Create;
begin
FAdaptee := TAdaptee.Create;
end;
destructor TAdapter.Destroy;
begin
FAdaptee.Free;
//---
inherited;
end;
procedure TAdapter.Request;
begin
FAdaptee.SpecificRequest;
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
var
ATarget: TTarget;
begin
ATarget := TAdapter.Create;
ATarget.Request;
ATarget.Free;
end;
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:适配器接口
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:适配器接口
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(参数化的适配器)
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(参数化的适配器)
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:绘图编辑器
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:绘图编辑器
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:使用双向适配器提供透明操作
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:使用双向适配器提供透明操作
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(使用抽象操作)
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(使用代理对象)
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(使用抽象操作)
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(使用代理对象)
- 《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:桥接接口
- 《GOF设计模式》—组合(COMPOSITE)—Delphi源码示例:组合接口
- 《GOF设计模式》—组合(COMPOSITE)—Delphi源码示例:最大化Component接口
- 《GOF设计模式》—装饰(DECORATOR)—Delphi源码示例:装饰接口
- 《GOF设计模式》—享元(FLYWEIGHT)—Delphi源码示例:享元接口
- 《GOF设计模式》—代理(PROXY)—Delphi源码示例:代理接口
- x&(x-1)表达式的意义
- android 应用程序Activity之间数据传递与共享的几种途径
- MTK资源管理
- UVa 10055 简单题
- POJ1035解题报告
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:适配器接口
- SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
- sicily 1013 poj 2195 km算法
- 如何修改VirtualBox下的Ubuntu的分辨率(更新)
- N个人围成一圈报数,报到某一个数m的就出局,问你最后剩下来的人的号码?
- 初识ABI
- _isnan
- Decorators I: Introduction to Python Decorators
- 如果QQ和360不兼容,会不会带来部分IT企业的新格局