抽象工厂模式:为什么我们需要抽象产品接口

时间:2017-07-22 07:46:11

标签: design-patterns abstract-factory

我们知道,需要以下类来设计抽象工厂模式:

  • 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;

1 个答案:

答案 0 :(得分:2)

工厂生产一些产品。

你可以看到很多相似的东西:

  • 汽车工厂生产汽车。
  • 牛奶厂生产牛奶。
  • 等等。

那就是它。当您有多种类型的产品时,AbstractProduct适用。在上面的示例中,Product可以是Car或Milk。如果您只有一种产品,则不需要定义AbstractProduct,因为该模式不鼓励您将Product抽象化。只需要AbstractFactory。