打印本文 打印本文 关闭窗口 关闭窗口
Delphi for .net中Singleton模式的实现
作者:武汉SEO闵涛  文章来源:敏韬网  点击数887  更新时间:2009/4/23 18:36:51  文章录入:mintao  责任编辑:mintao

近日得闲,研究了一下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.

打印本文 打印本文 关闭窗口 关闭窗口