实现通用抽象工厂

时间:2015-06-25 16:49:25

标签: c# generics

我正在尝试在C#中使用通用抽象工厂

我正在关注这个例子: http://www.codeproject.com/Articles/21043/Generic-Abstract-Factory

我有两个问题。

第一:依赖注入(我使用Unity)

public class ClientFactory
{
    private readonly IFactory<Car> _carFactory;

    public ClientFactory(IFactory<Car> carFactory)
    {
        _carFactory = carFactory;
    }
}

我称之为:

var client = new ClientFactory(new Car()); //(this is what the IoC does)

现在能够注入fakeCar我做了这个:

public class CarFake : IFactory<Car>
{
    public TProduct Build<TProduct>() where TProduct : IProduct<Car>, new()
    {
        Console.WriteLine("Creating FakeCar: " + typeof(TProduct));
        return new TProduct();
    }
}

所以,称之为:

var client = new ClientFactory(new CarFake()); Is this ok?

第二个问题是:

如何将参数传递给具体产品(构造函数参数),让我们说Honda(long id, string model),我想说:

IProduct<Car> carProducta = _carFactory.Build< Honda(Id:1,Model:"Civic") >();

非常感谢您的帮助。

0 个答案:

没有答案