《GOF设计模式》—单件(Singleton)—Delphi源码示例:单件接口(使用类字段)

来源:互联网 发布:企业网络布线论文 编辑:程序博客网 时间:2024/06/08 07:17

示例:单件接口(使用类字段)

说明:

D2007以上支持。

 

 

 

代码:

unit uSingleton2;

 

interface

 

uses

    SysUtils, Dialogs;

 

type

    TSingleton = class(TObject)

    private

        class var

            FInstance: TSingleton;

        var

            FSingletonData: string;

        function GetSingletonData: string;

        procedure SetSingletonData(const Value: string);

    public

        constructor Create;   

        destructor Destroy; override;

        //---

        class function Instance: TSingleton;

        procedure SingletonOperation;

        //---

        property SingletonData: string read GetSingletonData write SetSingletonData;

    end;

 

implementation

 

constructor TSingleton.Create;

begin

    if FInstance = nil then

        FInstance := Self

    else

        abort;

end;

 

destructor TSingleton.Destroy;

begin

    FInstance := nil;

    //---

    inherited;

end;

 

class function TSingleton.Instance: TSingleton;

begin

    if FInstance = nil then

        FInstance := TSingleton.Create;

    //---

    Result := FInstance;

end;

 

function TSingleton.GetSingletonData: string;

begin

    Result := FSingletonData;

end;

 

procedure TSingleton.SetSingletonData(const Value: string);

begin

    FSingletonData := Value;

end;

 

procedure TSingleton.SingletonOperation;

begin

    ShowMessage(FSingletonData);

end;

 

end.

 

原创粉丝点击