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