[英]Is an abstract factory with only one method still an abstract factory?
抽象工廠通常構造一個相關對象的“家族”,每個對象都從屬於各自的抽象。 這里的例子可以構建植物和植物采摘器; OrangeFactory
構造Oranges
和OrangePickers
, AppleFactory
構造Apples
和ApplePickers
。
但是,如果家庭只由一個抽象組成,它仍然是一個抽象工廠嗎? 考慮:
interface PlantFactory {
Plant makePlant();
}
public class AppleFactory implements PlantFactory {
Plant makePlant() {
return new Apple();
}
}
這仍然是抽象工廠的一個例子,還是別的什么? 在工廠、抽象工廠或工廠方法的任何示例中,我從未見過這樣的事情。 然而,它似乎仍然有用。 這種設計模式有什么本質上的錯誤嗎?
是的。 抽象工廠的主要目標基本上是對工廠系列進行抽象,在這種情況下,這些工廠創建了多少不同的 object 類型並不是主要因素。
作為示例(一如既往地簡化),可以使用抽象工廠模式 Wiki 文章中的圖表:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.