Delphi for .net中Singleton模式的实现

王朝delphi·作者佚名  2006-01-08
宽屏版  字体: |||超大  

近日得闲,研究了一下Delphi for .net Preview3,用它实现了在传统的Delphi中实现起来比较复杂的Singleton设计模式

文件如下:

//单元文件1

unit Sayes.RD.Singleton;

interface

type

TSingleton = class

strict private

class var

instance: TSingleton;

class constructor Create;

public

class var

I: Integer;

s: String;

class function GetInstance(): TSingleton; static;

end;

implementation

class constructor TSingleton.Create();

begin

i := 0;

s := 'In Singleton Class constructor';

end;

class function TSingleton.GetInstance(): TSingleton;

begin

if instance = nil then

begin

instance := TSingleton.Create;

end;

GetInstance := instance;

end;

end.

//单元文件2

unit Sayes.RD.Client;

interface

uses Sayes.RD.Singleton;

type

TClient = class

procedure ExportText();

constructor Create();

end;

implementation

procedure TClient.ExportText();

var

a: Sayes.RD.Singleton.TSingleton;

b: Sayes.RD.Singleton.TSingleton;

begin

a := TSingleton.GetInstance;

a.i := a.i + 1;

WriteLn(a.i);

a.s := 'ssssssss';

Writeln(a.S);

b := TSingleton.GetInstance;

b.i := a.i + 1;

WriteLn(b.i);

Writeln(b.s);

end;

constructor TClient.Create();

begin

inherited;

end;

end.

//项目文件

program Singleton;

uses

Sayes.RD.Client in 'Sayes.RD.Client.pas';

var

Client: TClient;

begin

Client := TClient.Create();

Client.ExportText;

end.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有