public class CarFactory : ICarFactory{
private static CarFactory instance = null;
public static ICarFactory SingletonInstance {
get {
if (this.instance == null){
this.instance = new CarFactory();
return this.instance;
}
},
set {
this.instance = value;
}
}
public ICar CreateCar(string make){
switch(make)
{
case "Toyota": return new Toyota();
case "Honda" : return new Honda();
default: throw new Exception();
}
}
}
public interface ICarFactory {
ICar CreateCar(string make);
}
public class Toyota : ICar
{
}
public class Honda : ICar
{
}
用法如下:
ICar car = CarFactory.SingletonInstance.CreateCar("Toyota");
1 回答
这是我的头脑,未经测试的代码(使用C#)
用法如下:
公开显示CarFactory的单例实例使您可以模拟CarFactory进行单元测试,并且可以让您的模拟CarFactory在调用CreateCar时返回模拟ICar .
现在用实际的依赖关系替换工厂中的Cars,例如实现服务的类 . 瞧,你有一个包含所有依赖项的工厂 . 您现在可以使用Factory来“解析”您的依赖项 . 您可以使用示例并通过使用泛型类型和字典(哈希表)进一步推送它,其中键是类型名称,值是实现实例,例如:
这样的东西......你得到漂移......
希望能帮助到你!