抽象工廠模式應(yīng)用場(chǎng)景 工廠方法模式與抽象工廠模式的區(qū)別?
工廠方法模式與抽象工廠模式的區(qū)別?工廠方法模式:一個(gè)抽象產(chǎn)品類,可以派生出多個(gè)具體產(chǎn)品類。一個(gè)抽象工廠類,可以派生出多個(gè)具體工廠類。每個(gè)具體工廠類只能創(chuàng)建一個(gè)具體產(chǎn)品類的實(shí)例。抽象工廠模式:多個(gè)抽象產(chǎn)
工廠方法模式與抽象工廠模式的區(qū)別?
工廠方法模式:一個(gè)抽象產(chǎn)品類,可以派生出多個(gè)具體產(chǎn)品類。一個(gè)抽象工廠類,可以派生出多個(gè)具體工廠類。每個(gè)具體工廠類只能創(chuàng)建一個(gè)具體產(chǎn)品類的實(shí)例。抽象工廠模式:多個(gè)抽象產(chǎn)品類,每個(gè)抽象產(chǎn)品類可以派生出多個(gè)具體產(chǎn)品類。一個(gè)抽象工廠類,可以派生出多個(gè)具體工廠類。每個(gè)具體工廠類可以創(chuàng)建多個(gè)具體產(chǎn)品類的實(shí)例。區(qū)別:工廠方法模式只有一個(gè)抽象產(chǎn)品類,而抽象工廠模式有多個(gè)。工廠方法模式的具體工廠類只能創(chuàng)建一個(gè)具體產(chǎn)品類的實(shí)例,而抽象工廠模式可以創(chuàng)建多個(gè)。
抽象工廠和工廠方法模式在應(yīng)用中的不同作用?
簡(jiǎn)單工廠,工廠方法,抽象工廠都屬于設(shè)計(jì)模式中的創(chuàng)建型模式。其主要功能都是幫助我們把對(duì)象的實(shí)例化部分抽取了出來(lái),優(yōu)化了系統(tǒng)的架構(gòu),并且增強(qiáng)了系統(tǒng)的擴(kuò)展性。本文是本人對(duì)這三種模式學(xué)習(xí)后的一個(gè)小結(jié)以及對(duì)他們之間的區(qū)別的理解。 簡(jiǎn)單工廠簡(jiǎn)單工廠模式的工廠類一般是使用靜態(tài)方法,通過(guò)接收的參數(shù)的不同來(lái)返回不同的對(duì)象實(shí)例。不修改代碼的話,是無(wú)法擴(kuò)展的。 工廠方法工廠方法是針對(duì)每一種產(chǎn)品提供一個(gè)工廠類。通過(guò)不同的工廠實(shí)例來(lái)創(chuàng)建不同的產(chǎn)品實(shí)例。在同一等級(jí)結(jié)構(gòu)中,支持增加任意產(chǎn)品。 抽象工廠抽象工廠是應(yīng)對(duì)產(chǎn)品族概念的。比如說(shuō),每個(gè)汽車公司可能要同時(shí)生產(chǎn)轎車,貨車,客車,那么每一個(gè)工廠都要有創(chuàng)建轎車,貨車和客車的方法。應(yīng)對(duì)產(chǎn)品族概念而生,增加新的產(chǎn)品線很容易,但是無(wú)法增加新的產(chǎn)品。 小結(jié)★工廠模式中,重要的是工廠類,而不是產(chǎn)品類。產(chǎn)品類可以是多種形式,多層繼承或者是單個(gè)類都是可以的。但要明確的,工廠模式的接口只會(huì)返回一種類型的實(shí)例,這是在設(shè)計(jì)產(chǎn)品類的時(shí)候需要注意的,最好是有父類或者共同實(shí)現(xiàn)的接口?!锸褂霉S模式,返回的實(shí)例一定是工廠創(chuàng)建的,而不是從其他對(duì)象中獲取的?!锕S模式返回的實(shí)例可以不是新創(chuàng)建的,返回由工廠創(chuàng)建好的實(shí)例也是可以的。 區(qū)別
工廠模式和抽象工廠模式的本質(zhì)區(qū)別是什么?
首先來(lái)看看這兩者的定義區(qū)別: 工廠模式:定義一個(gè)用于創(chuàng)建對(duì)象的借口,讓子類決定實(shí)例化哪一個(gè)類 抽象工廠模式:為創(chuàng)建一組相關(guān)或相互依賴的對(duì)象提供一個(gè)接口,而且無(wú)需指定他們的具體類 個(gè)人覺(jué)得這個(gè)區(qū)別在于產(chǎn)品,如果產(chǎn)品單一,最合適用工廠模式,但是如果有多個(gè)業(yè)務(wù)品種、業(yè)務(wù)分類時(shí),通過(guò)抽象工廠模式產(chǎn)生需要的對(duì)象是一種非常好的解決方式。
再通俗深化理解下:工廠模式針對(duì)的是一個(gè)產(chǎn)品等級(jí)結(jié)構(gòu) ,抽象工廠模式針對(duì)的是面向多個(gè)產(chǎn)品等級(jí)結(jié)構(gòu)的。再來(lái)看看工廠方法模式與抽象工廠模式對(duì)比: 工廠方法模式 抽象工廠模式 針對(duì)的是一個(gè)產(chǎn)品等級(jí)結(jié)構(gòu) 針對(duì)的是面向多個(gè)產(chǎn)品等級(jí)結(jié)構(gòu) 一個(gè)抽象產(chǎn)品類 多個(gè)抽象產(chǎn)品類 可以派生出多個(gè)具體產(chǎn)品類 每個(gè)抽象產(chǎn)品類可以派生出多個(gè)具體產(chǎn)品類 一個(gè)抽象工廠類,可以派生出多個(gè)具體工廠類 一個(gè)抽象工廠類,可以派生出多個(gè)具體工廠類 每個(gè)具體工廠類只能創(chuàng)建一個(gè)具體產(chǎn)品類的實(shí)例 每個(gè)具體工廠類可以創(chuàng)建多個(gè)具體產(chǎn)品類的實(shí)例