工廠方法和抽象工廠的區(qū)別 抽象工廠和工廠方法模式在應(yīng)用中的不同作用?
抽象工廠和工廠方法模式在應(yīng)用中的不同作用?簡單工廠、工廠方法和抽象工廠都是設(shè)計(jì)模式中的創(chuàng)新模式。它的主要功能是幫助我們提取對象的實(shí)例化部分,優(yōu)化系統(tǒng)架構(gòu),增強(qiáng)系統(tǒng)的可擴(kuò)展性。本文對這三種模式進(jìn)行了總結(jié)
抽象工廠和工廠方法模式在應(yīng)用中的不同作用?
簡單工廠、工廠方法和抽象工廠都是設(shè)計(jì)模式中的創(chuàng)新模式。它的主要功能是幫助我們提取對象的實(shí)例化部分,優(yōu)化系統(tǒng)架構(gòu),增強(qiáng)系統(tǒng)的可擴(kuò)展性。本文對這三種模式進(jìn)行了總結(jié),并對它們之間的區(qū)別進(jìn)行了理解。簡單工廠模式的工廠類通常使用靜態(tài)方法通過接收的不同參數(shù)返回不同的對象實(shí)例。不修改代碼就不能擴(kuò)展它。工廠方法工廠方法為每個產(chǎn)品提供工廠類。通過不同的工廠實(shí)例創(chuàng)建不同的產(chǎn)品實(shí)例。在同一層次結(jié)構(gòu)中,可以添加任何產(chǎn)品。抽象工廠抽象工廠處理產(chǎn)品族的概念。例如,每家汽車公司可能同時(shí)生產(chǎn)轎車、卡車和公共汽車。那么,每個工廠都必須有辦法制造汽車、卡車和公共汽車。添加新的產(chǎn)品線以應(yīng)對產(chǎn)品系列的概念很容易,但不能添加新產(chǎn)品。在工廠模式中,最重要的是工廠類,而不是產(chǎn)品類。產(chǎn)品類可以是多種形式,多層繼承或單個類。但要清楚的是,工廠模式接口將只返回一種類型的實(shí)例,在設(shè)計(jì)產(chǎn)品類時(shí)應(yīng)該注意這一點(diǎn)。最好有一個父類或一個共同實(shí)現(xiàn)的接口。使用工廠模式,返回的實(shí)例必須由工廠創(chuàng)建,而不是從其他對象獲取。工廠模式返回的實(shí)例可能不是新創(chuàng)建的,也可以返回工廠創(chuàng)建的實(shí)例。區(qū)別
工廠方法模式:一個抽象產(chǎn)品類可以派生多個特定的產(chǎn)品類。抽象工廠類可以派生多個具體工廠類。每個特定的工廠類只能創(chuàng)建特定產(chǎn)品類的一個實(shí)例。抽象工廠模式:多個抽象產(chǎn)品類。每個抽象產(chǎn)品類可以派生多個特定的產(chǎn)品類。抽象工廠類可以派生多個具體工廠類。每個特定的工廠類可以創(chuàng)建特定產(chǎn)品類的多個實(shí)例。區(qū)別:工廠方法模式只有一個抽象產(chǎn)品類,而抽象工廠模式有多個抽象產(chǎn)品類。工廠方法模式的具體工廠類只能創(chuàng)建具體產(chǎn)品類的一個實(shí)例,而抽象工廠模式可以創(chuàng)建多個實(shí)例。