抽象工厂
时间:2011-02-28 来源:秋皮皮
个人理解:当我们要再增加一个方法时,我们只要再创建一个具体工厂类和方法类。这样我们就可以不对工厂内部的代码进行修改!比简单工厂模式更加合理!但这样还是有个前提!是同一类产品间。它们有共同之处!工厂模式最核心的是抽象工厂类。各种具体工厂类通过抽象工厂将工厂方法继承下来。如此使得客户可以只关心抽象产品和抽象工厂,完全不用理会返回的是哪一种具体产品,也不用关心它是如何被具体工厂创建。它的不足:就是增加新产品时必需编写新的具体产品类和与之对应的具体工厂类。当两者相对简单!
参考http://book.51cto.com/art/201010/231997.htm
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 抽象工厂
{
class MyClass
{
static void Main(string[] args)
{
IFactoryVehicle factory = new FactoryCar();
IVehicle vehicle = factory.CreateVehicle();
vehicle.Go();
}
}
public interface IFactoryVehicle
{
IVehicle CreateVehicle();
}
public class FactoryCar:IFactoryVehicle
{
public IVehicle CreateVehicle()
{
return new Car();
}
}
public class FactoryBoat:IFactoryVehicle
{
public IVehicle CreateVehicle()
{
return new Boat();
}
}
public interface IVehicle
{
void Go();
}
public class Car:IVehicle
{
public void Go()
{
Console.WriteLine("car");
}
}
public class Boat:IVehicle
{
public void Go()
{
Console.WriteLine(("boat"));
}
}
}