所以程式師的意圖,就必須定義一個用戶創建物件的Interface,讓子類別決定實作哪一個類別。
創造一個飛機工廠
public abstract class AirplaneFactory
{
public abstract Airplane AirplaneCreate();
}
產生飛機及功能:
public abstract class Airplane
{
public abstract void StartUp();
public abstract void TakeOff();
public abstract void Land();
}
產生各家不同航空的飛機,可以 是華航、復興....等等:
public class ChinaAirlinesFactory : AirplaneFactory
{
public override Airplane AirplaneCreate()
{
return new ChinaAirlines();
}
}
class Transportation
{
static void Main(string[] args)
{
Console.WriteLine("請輸入Factory Method 號碼:");
Console.WriteLine("******************************");
Console.WriteLine("Factory Method
No");
Console.WriteLine("ChinaAirlinesFactory");
Console.WriteLine("******************************");
int no =
Int32.Parse(Console.ReadLine().ToString());
string factoryType =
ConfigurationManager.AppSettings["No" + no];
AirlinesFactory factory =
(AirlinesFactory)Assembly.Load("FactoryMehtod").CreateInstance("FactoryMehtod." + factoryType);
Airplane airplane =
factory.AirplaneCreate();
airplane.StartUp();
airplane.TakeOff();
airplane.Land();
}
}
1.Factory Method主要用於隔離類別物件的使用者和具體類型之間的耦合關係。
2.Factory Method通過面向物件的手法,將所要創建的具體物件延遲到子類別,實現擴展而非更改的策略,能改善解決了這種緊密的耦合關係。
3.Factory Mehtod解決「單個物件」的需求變化。
-雲遊山水為知已逍遙一生而忘齡- 電腦神手
沒有留言:
張貼留言