关于Delphi中Interface的作用

引入Interface的主要作用是有利于软件的升级维护,避免模块的耦合,而不是某些人认为的为了实现多重继承。

 

以下是一个小例子:

 

unit  Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
   //  定义接口  如果接口独立成一个文件,则在应用程序中和实现程序中都要引用该接口文件;
    ICar = interface (IInterface)
        ['{ED52E264-6683-11D7-B847-001060806215}' ]
        procedure drive;
    end ;
//  接口实现类  1  ,一定要加入  TinterfacedObject  才能使用;
    TCar = class(TInterfacedObject,ICar)
    public
        procedure drive;
    end ;
//  接口实现类  2  ,一定要加入  TinterfacedObject  才能使用;
    THouseCar = class(TInterfacedObject,ICar)
    public
        procedure drive;
    end ;
TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
private
    { Private declarations }
public
   { Public declarations }
    function getCar:ICar; //  此处可用别的方式来实现获取  ICAR  ,如放在  DLL  文件中;
end ;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TCar }
procedure  TCar.drive;
begin
ShowMessage('TCar.drive');
end  ;
{ THouseCar }
procedure  THouseCar.drive;
begin
   ShowMessage('THouseCar.drive');
end  ;
procedure  TForm1.Button1Click(Sender: TObject);
var
s:ICar;
begin
s:= getCar;
s.drive;
end  ;
function  TForm1.getCar:ICar;
begin
   Result:=THouseCar.Create; //  此处为整个实现的关键点;
//或Result:=TCar.Create;

end ;

转载于:https://www.cnblogs.com/xygzs/p/3668050.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值