Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---单例模式之ChocolateBoiler[转]

2020-12-13 15:42

阅读:198

标签:des   blog   http   io   ar   os   for   sp   div   

soscw.com,搜素材
 1soscw.com,搜素材
 2soscw.com,搜素材{《HeadFirst设计模式》之单例模式 }
 3soscw.com,搜素材{ 编译工具: Delphi2007 for win32 }
 4soscw.com,搜素材{ E-Mail : guzh-0417@163.com  }
 5soscw.com,搜素材
 6soscw.com,搜素材unit uChocolateBoiler;
 7soscw.com,搜素材
 8soscw.com,搜素材interface
 9soscw.com,搜素材
10soscw.com,搜素材type
11soscw.com,搜素材  TChocolateBoiler = class(TObject)
12soscw.com,搜素材  strict private
13soscw.com,搜素材    class var
14soscw.com,搜素材      FUniqueInstance: TChocolateBoiler;
15soscw.com,搜素材  strict private
16soscw.com,搜素材    FEmpty : Boolean;
17soscw.com,搜素材    FBoiled: Boolean;
18soscw.com,搜素材    constructor Create;
19soscw.com,搜素材  public
20soscw.com,搜素材    class function GetInstance: TChocolateBoiler;
21soscw.com,搜素材    function IsEmpty : Boolean;
22soscw.com,搜素材    function IsBoiled: Boolean;
23soscw.com,搜素材    procedure Fill;
24soscw.com,搜素材    procedure Drain;
25soscw.com,搜素材    procedure Boil;
26soscw.com,搜素材  end;
27soscw.com,搜素材
28soscw.com,搜素材implementation
29soscw.com,搜素材
30soscw.com,搜素材{ TChocolateBoiler }
31soscw.com,搜素材
32soscw.com,搜素材procedure TChocolateBoiler.Boil;
33soscw.com,搜素材begin
34soscw.com,搜素材  if (not IsEmpty) and (not IsBoiled) then
35soscw.com,搜素材    FBoiled := True;
36soscw.com,搜素材end;
37soscw.com,搜素材
38soscw.com,搜素材constructor TChocolateBoiler.Create;
39soscw.com,搜素材begin
40soscw.com,搜素材  FEmpty  := True;
41soscw.com,搜素材  FBoiled := False;
42soscw.com,搜素材end;
43soscw.com,搜素材
44soscw.com,搜素材procedure TChocolateBoiler.Drain;
45soscw.com,搜素材begin
46soscw.com,搜素材  if (not IsEmpty) and IsBoiled then
47soscw.com,搜素材    FEmpty := True;
48soscw.com,搜素材end;
49soscw.com,搜素材
50soscw.com,搜素材procedure TChocolateBoiler.Fill;
51soscw.com,搜素材begin
52soscw.com,搜素材  if IsEmpty then
53soscw.com,搜素材  begin
54soscw.com,搜素材    FEmpty  := False;
55soscw.com,搜素材    FBoiled := False;
56soscw.com,搜素材  end;
57soscw.com,搜素材end;
58soscw.com,搜素材
59soscw.com,搜素材class function TChocolateBoiler.GetInstance: TChocolateBoiler;
60soscw.com,搜素材begin
61soscw.com,搜素材  if FUniqueInstance = nil then
62soscw.com,搜素材  begin
63soscw.com,搜素材    Writeln(‘Creating unique instance of Chocolate Boiler.‘);
64soscw.com,搜素材    FUniqueInstance := TChocolateBoiler.Create;
65soscw.com,搜素材  end;
66soscw.com,搜素材
67soscw.com,搜素材  Writeln(‘Returning instance of Chocolate Boiler.‘);
68soscw.com,搜素材  Result := FUniqueInstance;
69soscw.com,搜素材end;
70soscw.com,搜素材
71soscw.com,搜素材function TChocolateBoiler.IsBoiled: Boolean;
72soscw.com,搜素材begin
73soscw.com,搜素材  Result := FBoiled;
74soscw.com,搜素材end;
75soscw.com,搜素材
76soscw.com,搜素材function TChocolateBoiler.IsEmpty: Boolean;
77soscw.com,搜素材begin
78soscw.com,搜素材  Result := FEmpty;
79soscw.com,搜素材end;
80soscw.com,搜素材
81soscw.com,搜素材end.

soscw.com,搜素材
 1soscw.com,搜素材
 2soscw.com,搜素材{《HeadFirst设计模式》之单例模式   }
 3soscw.com,搜素材{ 客户端                         }
 4soscw.com,搜素材{ 编译工具: Delphi2007 for win32 }
 5soscw.com,搜素材{ E-Mail : guzh-0417@163.com    }
 6soscw.com,搜素材
 7soscw.com,搜素材program pChocolateBoilerController;
 8soscw.com,搜素材
 9soscw.com,搜素材{$APPTYPE CONSOLE}
10soscw.com,搜素材
11soscw.com,搜素材uses
12soscw.com,搜素材  SysUtils,
13soscw.com,搜素材  uChocolateBoiler in ‘uChocolateBoiler.pas‘;
14soscw.com,搜素材
15soscw.com,搜素材var
16soscw.com,搜素材  aBoiler : TChocolateBoiler;
17soscw.com,搜素材  aBoiler2: TChocolateBoiler;
18soscw.com,搜素材
19soscw.com,搜素材begin
20soscw.com,搜素材  aBoiler := TChocolateBoiler.GetInstance;
21soscw.com,搜素材  aBoiler.Fill;
22soscw.com,搜素材  aBoiler.Boil;
23soscw.com,搜素材  aBoiler.Drain;
24soscw.com,搜素材
25soscw.com,搜素材  { will return the existing instance: aBoiler }
26soscw.com,搜素材  aBoiler2 := TChocolateBoiler.GetInstance;
27soscw.com,搜素材
28soscw.com,搜素材  FreeAndNil(aBoiler);
29soscw.com,搜素材  { FreeAndNil(aBoiler2); 同一对象(aBoiler)不能释放两次。}
30soscw.com,搜素材
31soscw.com,搜素材  Readln;
32soscw.com,搜素材end.

运行结果:

soscw.com,搜素材

 

 
 

Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---单例模式之ChocolateBoiler[转]

标签:des   blog   http   io   ar   os   for   sp   div   

原文地址:http://www.cnblogs.com/0x2D-0x22/p/4076337.html


评论


亲,登录后才可以留言!