本人技術渣,我也是昨天看了下人家抽象工廠的demo,所以才把看到的東西感悟寫下來,demo文章地址:http://www.cnblogs.com/zhili/p/AbstractFactory.html,
所謂工廠模式,工廠即指生產物品的車間,代碼的工廠模式,就是提供實例方法,把他封裝起來,就成為了一個工廠,而工廠就可以為我們提供實例對象,另外工廠還有一個特性,就是我們不用關心工廠是如何生產實例的,我們只需要告訴它要生產什麼實例,它就為我們提供什麼實例
而抽象工廠,作用是為了更大可能的解除方法調用間的耦合度,舉例為在.net中我們通常會使用到三層,我們直接用bll去掉dal裡的方法,兩者直接就會存在很大的耦合,借於此,我們會用借口去完成之間的聯系,為dal編寫一個接口,然後繼承。在bll調用dal方法時用接口實例。所以原來的工廠
現在就需要變成生產實例化接口(接口不可以直接實例化,可以實例化繼承接口的類) 這樣工廠就成了實例化接口的工廠,這就是抽象工廠
核心函數:
public class DalSimpleFactory
{
#region
private static string assemblyName = ConfigurationManager.AppSettings["Assembly"].ToString();
private static string spaceName = ConfigurationManager.AppSettings["NameSpace"].ToString();
#endregion
public static LcxIDal.IUserInfo getUserInfo()
{
return getInterFace(assemblyName, string.Format("{0}.{1}", spaceName, "UserInforDal")) as LcxIDal.IUserInfo;
}
public static object getInterFace(string assemblyName, string typeName)
{
return Assembly.Load(assemblyName).CreateInstance(typeName);
}
}