Delphi設計模式-Abstract Factory (轉)
的描述可以參考[1],下面舉一箇中的例子。
通常Delphi中的Form都是自動Create,也可以在Form中寫程式碼來建立(通常是在主Form中)。下面以Abstract Factory來建立Form。
//unit AbstractF
TAbstractFactory = class
public
function CreateFo: TForm;virtual;abstract;
end;
//unit ConcreteFA
TConcreteFactoryA = class(TAbstractFactory)
public
function CreateForm : TForm; overr;
end;
{ TConcreteFactoryB }
function TConcreteFactoryA.CreateForm: TForm;
begin
Result := TfrmFormA.Create(Application);
Result.ShowModal;
end;
//unit ConcreteFB
TConcreteFactoryB = class(TAbstractFactory)
public
function CreateForm : TForm; override;
end;
{ TConcreteFactoryB }
function TConcreteFactoryB.CreateForm: TForm;
begin
Result := TfrmFormB.Create(Application);
Result.ShowModal;
end;
//主Form
unit MainFrm;
interface
uses
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, AbstractF;
type
TfrmMain = class(TForm)
btnConcreteA: TButton;
btnContreteB: TButton;
procedure btnConcreteAClick(Sender: T);
procedure btnContreteBClick(Sender: TObject);
private
{ Private declarations }
FAbstractFactory: TAbstractFactory;
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
uses ConcreteFA, ConcreteFB;
{$R *.dfm}
procedure TfrmMain.btnConcreteAClick(Sender: TObject);
begin
FAbstractFactory:= TConcreteFactoryA.Create;
FAbstractFactory.CreateForm;
FAbstractFactory.Free;
end;
procedure TfrmMain.btnContreteBClick(Sender: TObject);
begin
FAbstractFactory:= TConcreteFactoryB.Create;
FAbstractFactory.CreateForm;
FAbstractFactory.Free;
end;
end.
[參考資料]
1.《設計模式-可複用面向的基礎》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990256/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 設計模式、用Delphi描述-->Abstract Factory模式 (轉)設計模式
- 設計模式討論之abstract factory篇 (轉)設計模式
- 設計模式、用Delphi描述-->Factory Method模式 (轉)設計模式
- 設計模式--抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式討論之abstract factory篇設計模式
- 設計模式(Design Patterns)筆記之一:Abstract Factory (轉)設計模式筆記
- 設計模式實戰 – 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式實戰 - 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- JAVA設計模式之 抽象工廠模式【Abstract Factory Pattern】Java設計模式抽象
- 【圖解設計模式系列】The Abstract Factory Pattern: 抽象工廠模式圖解設計模式抽象
- 設計模式的征途—4.抽象工廠(Abstract Factory)模式設計模式抽象
- 我所理解的設計模式(C++實現)——抽象工廠模式(Abstract Factory Pattern)設計模式C++抽象
- Abstract Factory(抽象工廠)——物件建立型模式抽象物件模式
- Abstract Factory + Template = BuilderUI
- 奇幻RPG(人物構建 與 Abstract Factory模式)模式
- 設計模式、用Delphi描述-->Visitor模式 (轉)設計模式
- 設計模式、用Delphi實現---->Builder模式 (轉)設計模式UI
- 設計模式、用Delphi描述-->Lock pattern (轉)設計模式
- 設計模式、用Delphi實現---->Singleton 模式 (轉)設計模式
- 《設計模式》 - 2. 工廠模式( Factory )設計模式
- 設計模式--工廠模式Factory(建立型)設計模式
- Java設計模式之工廠模式(Factory)Java設計模式
- 設計模式、用Delphi描述-->Reference Count pattern (轉)設計模式
- 用Java實現的設計模式系列(1)-Factory (轉)Java設計模式
- 設計模式--工廠方法模式(Factory Method Pattern)設計模式
- Scala 與設計模式(四):Factory 工廠模式設計模式
- 設計模式之工廠方法模式(FACTORY METHOD)設計模式
- 設計模式系列之工廠模式三兄弟(Factory Pattern)設計模式
- 設計模式(Design Patterns)工廠方法模式(Factory Method)設計模式
- C#設計模式系列:工廠方法模式(Factory Method)C#設計模式
- JAVA設計模式之 工廠方法模式【Factory Method Pattern】Java設計模式
- 設計模式筆記:簡單工廠模式(Simple Factory)設計模式筆記
- PHP設計模式(一)簡單工廠模式 (Simple Factory For PHP)PHP設計模式
- 設計模式的征途—3.工廠方法(Factory Method)模式設計模式
- JAVA設計模式之 簡單工廠模式【Simple Factory Pattern】Java設計模式
- Delphi之快速設計(程式設計篇) (轉)程式設計
- 設計模式的征途—2.簡單工廠(Simple Factory)模式設計模式
- Delphi程式設計之--慣用法 (轉)程式設計