Tag: 工厂模式

使用DI和IoC的工厂方法

我熟悉这些模式,但仍然不知道如何处理以下情况: public class CarFactory { public CarFactory(Dep1,Dep2,Dep3,Dep4,Dep5,Dep6) { } public ICar CreateCar(type) { switch(type) { case A: return new Car1(Dep1,Dep2,Dep3); break; case B: return new Car2(Dep4,Dep5,Dep6); break; } } } 通常,问题在于需要注入的引用量。 当有更多的汽车时会更糟。 我想到的第一种方法是在工厂构造函数中注入Car1和Car2,但它违反工厂方法,因为工厂将始终返回相同的对象。 第二种方法是注入servicelocator但它的反模式到处都是。 怎么解决? 编辑: 替代方式1: public class CarFactory { public CarFactory(IContainer container) { _container = container; } public ICar CreateCar(type) { switch(type) { […]