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