我有生產不同尺寸汽車的汽車廠。 我有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