我有生产不同尺寸汽车的汽车厂。 我有2个工厂:美国和泰国,使汽车大小,大,中,小。 但我有一个问题:泰国工厂不制造大车。抽象工厂坏设计?
代码:
public enum CarSize { Big, Middle, Little,}
public interface ICarFactory {
ICar CreateCar(CarSize carSize);
}
public class USACarFactory : ICarFactory {
public ICar CreateCar(CarSize carSize) {
ICar car = null;
switch (carSize) {
case CarSize.Little:
car = new USALittleCar();
break;
case CarSize.Middle:
car = new USAMiddleCar();
break;
case CarSize.Big:
car = new USABigCar();
break;
}
return car;
}
}
public class ThailandCarFactory : ICarFactory {
public ICar CreateCar(CarSize carSize){
ICar car = null;
switch (carSize) {
case CarSize.Little:
car = new ThailandLittleCar();
break;
case CarSize.Middle:
car = new ThailandMiddleCar();
break;
case CarSize.Big:
//no big cars in Thailand!!!!
break;
}
return car;
}
}
public interface ICar { }
public class USABigCar : ICar { }
public class USAMiddleCar : ICar { }
public class USALittleCar : ICar { }
public class ThailandMiddleCar : ICar { }
public class ThailandLittleCar : ICar { }
我该怎么办? 我的抽象工厂设计得不好吗?
为什么你这样做'案例CarSize.Big:泰国没有大型汽车!!!!打破;'?你说过:但是,我有一个问题:在泰国工厂没有生产大型汽车!!!但是你不允许泰国的工厂生产大型汽车?我不明白你的意思。请澄清。 – hologram
我的意思是,如果我要求泰国工厂做大车,我会得到空。我使用了更好的可见性的评论。 – zzfima
这是因为你写的代码,所以泰国工厂不制造大车... – hologram