很多人說他們在他們的項目中使用工廠模式。但是當我真正看到他們的實現時,它看起來完全不同 從定義我已經讀過頭第一本書。在這本書中,他們描述了兩種工廠模式即關於工廠模式的問題
工廠方法: - 類指定其子類來指定哪些 對象基於一些參數來創建。所以我們在這裏希望在基類中的一些 抽象方法whihich將通過該子 類和章節目標實現將是創建一些對象
抽象工廠: - 提供一個工廠(在接口或 抽象的形式工廠),用於創建相關或依賴對象的家庭 而不指定其具體的類。
我這裏有什麼?他們的家庭依賴或相關 對象的意思的問題。讓我們參考http://www.apwebco.com/gofpatterns/creational/AbstractFactory.html。根據我的理解,這意味着在FinancialToolsFactory
(在鏈接中)能夠創建TaxProcessor
,這是一個產品系列,其中真正的混凝土產品是CanadaTaxProcessor
和EuropeTaxProcessor
。所以在這裏我們將有n
具體工廠的數量(在這種情況下爲CanadaFinancialToolsFactory
和EuropeFinancialToolsFactory
),這將在這種情況下延伸/實施抽象工廠FinancialToolsFactory
。
請讓我知道,如果上述理解是正確的,我認爲它是工廠模式的關鍵。
第二個問題:
人都在做的工廠模式的名稱是什麼如下:
public class MyFactory
{
public static <T> T getObject(Class<T> cls)
{
if (cls == null)
{
throw new IllegalArgumentException("Invalid className");
}
T daoObject = (T)map.get(cls);
if (daoObject == null)
{
daoObject = loadObject(cls);
}
return daoObject;
}
}
他們只是從main方法傳遞類像Example.class和獲取的對象實例那個特定的類。 現在,如果我們按照開始時描述的工廠模式的實際概念(來自第一本書)和其他網站,它不會遵循兩種工廠模式中的任何一種。對我來說,它看起來像一個工具類,我們正在傳遞類並獲取對象實例。 如果你同意這個,請讓我知道嗎?
Javadoc是否說這是這些書中解釋的經典工廠模式的實現? –
我同意100%回答第二個問題。這是一個「懶加載註冊表」,而不是「工廠」 –