抽象工廠模式(C#)
不理解抽象工廠模式是無法徹底明白 Petshop 的,聽起來好像名詞比較多,不好理解...其實就像一層窗戶紙一樣!
有兩點需要注意一下:
1. 必須明白介面的概念及使用方法
2. IFruit MyFruit = (IFruit)Assembly.Load(path).CreateInstance(sTypeName);
這一句包含的內容比較多,但是理解了其實也沒什麼的;
首先是使用介面宣告物件,Assembly 是反射方式載入物件,path 為應用程式的“程式集名稱”,sTypeName 為完整的類名
比方說下面的程式碼中,程式集的名稱在專案屬性中指定(我這裡使用的和名稱空間名稱一樣),而完整類名就更好理解了!
使用方法:
Code
protected void Button1_Click(object sender, EventArgs e)
{
Label lb = new Label();
string FruitName = TextBox1.Text.Trim();
this.form1.Controls.Add(lb);
//宣告工廠物件
FruitFactory MyFruitFactory = new FruitFactory();
//以介面方式宣告物件(可以例項化為此介面的任何一個物件)
IFruit MyFruit = MyFruitFactory.MakeFruit(FruitName);
//呼叫物件內的方法
lb.Text = MyFruit.PostName();
}
工廠定義如下:
Code
using System.Reflection;
namespace vopt.DAL
{
///
/// 抽象介面定義
///
public interface IFruit
{
string PostName();//返回類名
}
///
/// 例項型別一
///
public class Orange : IFruit
{
public string PostName()
{
return this.ToString();//返回類名
}
}
///
/// 例項型別二
///
public class Apple : IFruit
{
public string PostName()
{
return this.ToString();//返回類名
}
}
///
/// 抽象工廠定義
///
public class FruitFactory
{
public IFruit MakeFruit(string className)
{
//程式集名稱
string path = "vopt.DAL";
//完整的類名,vopt.DAL.Apple/Orange
string sTypeName = path + "." + className;
//利用反射載入物件
IFruit MyFruit = (IFruit)Assembly.Load(path).CreateInstance(sTypeName);
return MyFruit;
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-541540/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- C# 設計模式----抽象工廠模式C#設計模式抽象
- C#設計模式(4)——抽象工廠模式C#設計模式抽象
- 工廠模式 抽象模式模式抽象
- 抽象工廠模式抽象模式
- 簡單工廠模式、工廠模式、抽象工廠模式比較模式抽象
- 簡單工廠模式和抽象工廠模式模式抽象
- 建立型:工廠模式-工廠方法、抽象工廠模式抽象
- java 抽象工廠模式Java抽象模式
- 06: 抽象工廠模式抽象模式
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- 設計模式之工廠方法模式|抽象工廠模式設計模式抽象
- 抽象工廠模式-與-工廠方法模式區別抽象模式
- 一篇搞定工廠模式【簡單工廠、工廠方法模式、抽象工廠模式】模式抽象
- 簡單工廠、工廠方法和抽象工廠模式抽象模式
- 設計模式——抽象工廠模式設計模式抽象
- 設計模式 —— 抽象工廠模式設計模式抽象
- 設計模式-抽象工廠模式設計模式抽象
- 建立型模式——抽象工廠模式模式抽象
- 設計模式學習(二)工廠模式——抽象工廠模式設計模式抽象
- 工廠方法模式與抽象工廠模式的區別模式抽象
- 【Python】抽象工廠模式Python抽象模式
- 設計模式----抽象工廠設計模式抽象
- 設計模式 – 抽象工廠設計模式抽象
- 建立型模式:抽象工廠模式抽象
- 設計模式 - 抽象工廠設計模式抽象
- 04_抽象工廠模式抽象模式
- Java抽象工廠模式案例Java抽象模式
- 工廠三兄弟之抽象工廠模式(二)抽象模式
- 工廠三兄弟之抽象工廠模式(一)抽象模式
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- Java 設計模式之工廠方法模式與抽象工廠模式Java設計模式抽象
- 簡單工廠模式、工廠方法模式和抽象工廠模式有何區別?模式抽象
- java設計模式–抽象工廠模式Java設計模式抽象
- Java設計模式-抽象工廠模式Java設計模式抽象
- 設計模式系列·抽象工廠模式設計模式抽象
- 設計模式(十三)抽象工廠模式設計模式抽象
- 設計模式(四)——抽象工廠模式設計模式抽象