Delphi 里的接口聚合的写法。俺自己写的测试例子代码
2017-04-06 10:07
477 查看
unit Unit1; {----------------------------------------------------------------------------- 本程序演示接口委托聚合: TMyClass 拥有并实现了 IMyTask 接口 TMyPlan 类拥有 IMyTask 接口,但没有去实现这个接口里的 SayHell 方法,而是通过 property MyTask: IMyTask read FMyClass implements IMyTask; 语句,将这个实现委托给内部的 FMyClass 接口实现。 传统的面向类的代码,当做一个包装类,包装多个子类在里面的时候,要在包装类的 public 里 再实现一次子类里的方法,在实现的方法里再调用子类的方法。这种办法也有人称为【委托】。 如果采用接口委托,则不用重复写代码,直接写一句: property MyTask: IMyTask read FMyClass implements IMyTask; 则包装类 就不用在 public 里再次重复实现一次接口里的函数方法等等了。这种办法也有人称为【聚合】 以下代码测试通过。 pcplayer 2011-10-23 星期日。 -----------------------------------------------------------------------------} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type IMyTask = Interface ['{1B9D204E-1662-4280-A8E6-D7F518A425F5}'] function SayHello: string; End; TMyClass = class(TInterfacedObject, IMyTask) private public function SayHello: string; end; TMyPlan = class(TInterfacedObject, IMyTask) private FMyClass: IMyTask; public constructor Create; property MyTask: IMyTask read FMyClass implements IMyTask; end; TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TMyClass } function TMyClass.SayHello: string; begin Result := 'Hello'; end; { TMyPlan } constructor TMyPlan.Create; begin inherited; FMyClass := TMyClass.Create as IMyTask; end; procedure TForm1.Button1Click(Sender: TObject); var MyPlan: IMyTask; begin MyPlan := TMyPlan.Create; Label1.Caption := MyPlan.SayHello; MyPlan := nil; end; end.
相关文章推荐
- 为了给自己开发一个支持 fastcgi 的 http server 做准备。剥离了 nanoweb 的 fastcgi 接口部分代码。测试了下。 成功了
- Delphi使用android的NDK是通过JNI接口,封装好了,不用自己写本地代码,直接调用
- TCPIP接口读卡器delphi例子代码
- Java8,静态默认方法,Lambd继承接口写法,与代码覆盖率测试
- 接口的客户端测试代码
- Perl sap 接口 代码例子
- Spring 测试代码的写法以及一个c3p0的错误
- C#版本的备案接口pwdHash生成代码(测试通过)
- Delphi 设计模式:《HeadFirst设计模式》Delphi代码---模式小结之一个叫声接口和几只鸭子
- 将对象直接转换为接口应用的代码例子, 注意其中用了 as 方式, 很有意思
- Delphi 灵活运用接口(interface), 隐藏核心代码, 设计低耦合程序.
- QNX下测试AM79C97X网卡代码例子
- 汉王扫描仪调用接口,delphi代码
- Unit Test的意义和测试代码的写法
- 自己动手,结合javascript和dhtml做一个ubb编辑器(附例子代码)
- delphi 三层架构简单例子(经测试成功)
- 接口的客户端测试代码
- 从一个小的例子看如何提升自己到更高的关键测试水平
- DELPHI 图片任意角旋转。 我看着书上的C++代码改的,加了点自己的理解。huruihappy
- Python常用辅助安全测试6个代码例子