(無法添加新產(chǎn)品)工廠方法:用于在同一層次結構中生產(chǎn)固定產(chǎn)品。摘要工廠:用于生產(chǎn)不同產(chǎn)品系列的所有產(chǎn)品。(我們無法添加新產(chǎn)品;我們支持添加產(chǎn)品族)以上三種工廠方法在層次和產(chǎn)品族兩個方向上有不同程度的支持。所以我們應該根據(jù)情況考慮采用哪種方法。
工廠方法模式:可以從多個特定產(chǎn)品類派生抽象產(chǎn)品類。抽象工廠類可以派生多個具體工廠類。每個特定的工廠類只能創(chuàng)建特定產(chǎn)品類的一個實例。抽象工廠模式:多個抽象產(chǎn)品類。每個抽象產(chǎn)品類可以派生多個特定的產(chǎn)品類。抽象工廠類可以派生多個具體工廠類。每個特定的工廠類可以創(chuàng)建特定產(chǎn)品類的多個實例。區(qū)別:工廠方法模式只有一個抽象產(chǎn)品類,而抽象工廠模式有多個抽象產(chǎn)品類。工廠方法模式的具體工廠類只能創(chuàng)建具體產(chǎn)品類的一個實例,而抽象工廠模式可以創(chuàng)建多個實例。
工廠模式和抽象工廠模式的本質區(qū)別是什么?首先,讓我們看看這兩個定義之間的區(qū)別:工廠模式:定義創(chuàng)建對象的借口,讓子類決定實例化哪個類。抽象工廠模式:提供一個接口來創(chuàng)建一組相關或相互依賴的對象,而不指定它們的特定類我認為區(qū)別在于產(chǎn)品。如果產(chǎn)品是單一的,工廠模式是最合適的。但是,如果有多個業(yè)務品種和業(yè)務分類,那么通過抽象工廠模式生成所需的對象是一個非常好的解決方案。
進一步了解:工廠模式用于產(chǎn)品層次結構,抽象工廠模式用于多個產(chǎn)品層次結構。讓我們看一下工廠方法模式和抽象工廠模式的比較:工廠方法模式抽象工廠模式針對一個產(chǎn)品層次,針對多個產(chǎn)品層次。抽象產(chǎn)品類可以派生多個具體產(chǎn)品類,每個抽象產(chǎn)品類可以派生多個具體產(chǎn)品類抽象工廠類可以派生多個具體工廠類。抽象工廠類可以派生多個具體工廠類。每個混凝土工廠類只能創(chuàng)建一個混凝土產(chǎn)品類實例。每個具體工廠類可以創(chuàng)建具體產(chǎn)品類的多個實例