|
寫在前面
最近一段時(shí)間在研究有關(guān)設(shè)計(jì)模式方面的文章,拜讀了TerryLee以及呂震宇兩位老師所寫的設(shè)計(jì)模式方面的系列文章,收獲頗豐,也讓我對(duì)OOP,OOD有了新的理解和認(rèn)識(shí),不過在看到工廠方面的幾篇文章時(shí),卻總有個(gè)地方想不通,望各位老師專家能替在下答疑解惑,以下是自己對(duì)工廠模式的一些理解以及提出的一種改良方案,不知道是否有人提出過類似的方案,如有雷同純屬巧合。有說得不對(duì)的地方還請(qǐng)批評(píng)指正。
從簡(jiǎn)單工廠說起
嚴(yán)格來講簡(jiǎn)單工廠并不屬于GOF的23個(gè)設(shè)計(jì)模式之一,但它之所以存在而被人們廣泛認(rèn)知的原因,我想是由于它在一定程度上簡(jiǎn)化了工廠方法(Factory Method)與抽象工廠(Abstract Factory)的模式,從而可以帶給新手對(duì)于工廠模式設(shè)計(jì)的精髓最直觀的認(rèn)識(shí),是不少人接觸工廠模式的奠基石,理解了簡(jiǎn)單工廠的設(shè)計(jì)理念及實(shí)現(xiàn)方法再去理解相對(duì)復(fù)雜的工廠方法與抽象工廠有著水到渠成的效果。
先來看看簡(jiǎn)單工廠的類關(guān)系圖:
簡(jiǎn)單工廠一般以如下方式實(shí)現(xiàn):
public class SimpleFactory
{
///
/// Get the right product base on the paoductcategory parameter.
///
///
///
public static IProduct CreateProduct(string productCategory)
{
switch (productCategory)
{
case "A":
return new ProductA();
case "B":
return new ProductB();
case "C":
return new ProductC();
default:
throw new Exception("Not a valid product category!");
return null;
}
}
}
NET技術(shù):疑惑?改良? 從簡(jiǎn)單工廠到工廠方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。