工厂方法模式

工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现‘开-闭 原则’,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。  

工厂方法模式的对简单工厂模式进行了抽象。有一个抽象的Factory类(可以是抽象类和接口),这个类将不在负责具体的产品生产,而是只制定一些规范,具体的生产工作由其子类去完成。在这个模式中,工厂类和产品类往往可以依次对应。即一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品,这个具体的工厂就负责生产对应的产品。  

工厂方法模式(Factory Method pattern)是最典型的模板方法模式(Templete Method pattern)应用。

代码
public abstract class Product
{
private string productA;
public string ProductA
{
get { return this.productA; }
set { this.productA = value; }
}
private string productB;
public string ProductB
{
get { return this.productB; }
set { this.productB = value; }
}

public abstract void PrintProductMessage();
}
public class Operate1:Product
{
public override void PrintProductMessage()
{
Console.WriteLine(ProductA);
}
}
public class Operate2:Product
{

public override void PrintProductMessage()
{
Console.WriteLine(ProductB);
}
}
public interface IFactory
{
Product CreateClass();
}
public class Factory1 : IFactory
{
public Product CreateClass()
{
return new Operate1();
}
}
public class Factory2 : IFactory
{
public Product CreateClass()
{
return new Operate2();
}
}
class Program
{
static void Main(string[] args)
{
Factory1 f1
= new Factory1();
Factory2 f2
= new Factory2();

Product pro
= f1.CreateClass();

pro.ProductA
= "产品1";
pro.ProductB
= "产品2";

pro.PrintProductMessage();
Console.ReadLine();
}
}

 

posted on 2010-09-03 11:55  Tim's Home  阅读(178)  评论(0编辑  收藏  举报