工廠模式中又分為簡單工廠模式
學習設計模式要對面向對象的程序設計有一定的理解
TFruit = Class(TObject)
end;
//蘋果類
TApple = class(TFruit)
end;
function Factory(): TFruit;
var
f:TFruit;
begin
//精髓就是這條語句了
//卻將他賦值給TFruit類型的變量
//其實這樣做好處大大的
f:=TApple
result:=f;
end
在例程中我用到了接口
這是說明
//我們用一個小果園來說明什麼是簡單工廠
//這個果園裡有葡萄
//所有的水果都有生長
//果園的任務就是讓我們得到葡萄
//我們利用得到的對象可以完成水果生長
//果園就是我們所說的簡單工廠(Factory)
//而葡萄
//完成產品的過程稱之為外部使用者(Produce)
//使用簡單工廠的好處是
//
//不管你種什麼
//而是返回一個他們的抽象對象
//
//內部產品發生變化時外部使用者不會受到影響
//他的缺點是
//如果增加了新的產品
這是定義簡單工廠的單元文件源代碼
//SimpleFactory
//代碼如下==========
unit SimpleFactory;
interface
uses
SysUtils;
type
//水果類
//僅僅聲明了所有對象共有的接口
IFruit = interface(IInterface)
function Grow: string; //生長
function Harvest: string; //收獲
function Plant: string;//耕作
end;
//葡萄類
TGrape = class(TInterfacedObject
function Grow: string;
function Harvest: string;
function Plant: string;
end;
//蘋果類
TApple = class(TInterfacedObject
function Grow: string;
function Harvest: string;
function Plant: string;
end;
//草莓類
TStrawberry = class(TInterfacedObject
function Grow: string;
function Harvest: string;
function Plant: string;
end;
//果園類
TFruitGardener = class(TObject)
public
//
//
//
class function Factory(whichFruit:string): IFruit;
end;
//聲明一個異常
NoThisFruitException = class(Exception)
end;
implementation
{ ********** TGrape ********** }
function TGrape
begin
result:=
end;
function TGrape
begin
result:=
end;
function TGrape
begin
result:=
end;
{ ********** TApple ********** }
function TApple
begin
result:=
end;
function TApple
begin
result:=
end;
<
From:http://tw.wingwit.com/Article/program/Delphi/201401/30259.html