簡體   English   中英

只有一種方法的抽象工廠仍然是抽象工廠嗎?

[英]Is an abstract factory with only one method still an abstract factory?

抽象工廠通常構造一個相關對象的“家族”,每個對象都從屬於各自的抽象。 這里的例子可以構建植物和植物采摘器; OrangeFactory構造OrangesOrangePickersAppleFactory構造ApplesApplePickers

但是,如果家庭只由一個抽象組成,它仍然是一個抽象工廠嗎? 考慮:

interface PlantFactory {
  Plant makePlant();
}

public class AppleFactory implements PlantFactory {
  Plant makePlant() {
    return new Apple();
  }
}

這仍然是抽象工廠的一個例子,還是別的什么? 在工廠、抽象工廠或工廠方法的任何示例中,我從未見過這樣的事情。 然而,它似乎仍然有用。 這種設計模式有什么本質上的錯誤嗎?

是的。 抽象工廠的主要目標基本上是對工廠系列進行抽象,在這種情況下,這些工廠創建了多少不同的 object 類型並不是主要因素。

作為示例(一如既往地簡化),可以使用抽象工廠模式 Wiki 文章中的圖表:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM