我们知道,需要以下类来设计抽象工厂模式:
AbstractFactory
ConcreteFactory
AbstractProduct
产品
我的问题是为什么我们需要 AbstractProduct ?查看以下代码,我创建了抽象工厂模式,没有任何AbstractProduct:
if (numberAmount > 15 || numberDigit > 15) {
System.out.println("We can't generate that many numbers!");
return true;
} else if (numberAmount < 0 || numberDigit < 0) {
System.out.println("We can't generate negative amount of numbers!");
return true;
} else if (numberAmount == 0 || numberDigit == 0) {
System.out.println("Zero numbers requested");
return true;
}
return false;
答案 0 :(得分:2)
工厂生产一些产品。
你可以看到很多相似的东西:
那就是它。当您有多种类型的产品时,AbstractProduct适用。在上面的示例中,Product可以是Car或Milk。如果您只有一种产品,则不需要定义AbstractProduct,因为该模式不鼓励您将Product抽象化。只需要AbstractFactory。