疑惑?改良? 从简单工厂到工厂方法

  写在前面

最近一段时间在研究有关设计模式方面的文章,拜读了TerryLee以及吕震宇两位老师所写的设计模式方面的系列文章,收获颇丰,也让我对OOP,OOD有了新的理解和认识,不过在看到工厂方面的几篇文章时,却总有个地方想不通,望各位老师专家能替在下答疑解惑,以下是自己对工厂模式的一些理解以及提出的一种改良方案,不知道是否有人提出过类似的方案,如有雷同纯属巧合。有说得不对的地方还请批评指正。 

  从简单工厂说起

严格来讲简单工厂并不属于GOF的23个设计模式之一,但它之所以存在而被人们广泛认知的原因,我想是由于它在一定程度上简化了工厂方法(Factory Method)与抽象工厂(Abstract Factory)的模式,从而可以带给新手对于工厂模式设计的精髓最直观的认识,是不少人接触工厂模式的奠基石,理解了简单工厂的设计理念及实现方法再去理解相对复杂的工厂方法与抽象工厂有着水到渠成的效果。

先来看看简单工厂的类关系图:

简单工厂一般以如下方式实现:

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技术疑惑?改良? 从简单工厂到工厂方法,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。