设计模式之singleton[2]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 cfqdream 的 blog

  isave:integer=0;
var
  p:^integer;
  obj:tsingleton;
begin
  p:=@isave;
  obj:=nil;
  case value of
  0:
    begin
      if (isave<>0) then
      begin
        result:=isave;
        obj:=pointer(isave);
      end;
      if not assigned(obj) then
      begin
        obj:=tsingleton.create;
        p^:=integer(obj);
        result:=isave;
      end
    end;
  1:
    begin
      p^:=0;
    end;
  end;
end;

 

procedure tsingleton.setusername(const value: string);
begin
  fusername := value;
end;

procedure tform1.button3click(sender: tobject);
var
  singleton:tsingleton;
begin
  singleton:=tsingleton.getinstance;
  singleton.username:=edit1.text;
end;

procedure tform1.button4click(sender: tobject);
var
  singleton:tsingleton;
begin
  singleton:=tsingleton.getinstance;
  edit2.text:=singleton.username;
end;

procedure tform1.button5click(sender: tobject);
var
  singleton:tsingleton;
begin
  singleton:=tsingleton.getinstance;
  singleton.free;

本文关键:设计模式之singleton
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top