工廠模式(Factory Pattern):簡單&粗暴解析

1.前言


2.目錄

模式目錄.png

3.含義

簡單工廠模式的擴展,設立不同的子工廠,創(chuàng)建對應的一個對象。


4.解決

1.“使用實例者”和“實例創(chuàng)建過程”解耦,讓使用者不需關心創(chuàng)建過程,在改變創(chuàng)建過程時,不影響使用者。
2.添加新對象,需要修改工廠類,違反 開閉原則。


5.原理

設定一個父工廠接口,讓不同對象的創(chuàng)建封裝在不同的子工廠。

5.1 工廠模式結構

工廠結構1.png

5.2 結構分析

Factory:負責約定子工廠可生產(chǎn)的產(chǎn)品。
FactoryA/B:負責實現(xiàn)生產(chǎn)具體產(chǎn)品。
Product:負責抽象約定產(chǎn)品。
ProductA/B:具體的產(chǎn)品。

5.3 實例(生產(chǎn)打印機)

Product

public interface Printer {
    public void brand();
}

A

public class HTCPrinter implements Printer{
    @Override
    public void brand() {
        System.out.print("這是HTC的打印機");
    }
}

B

public class SamSungPrinter implements Printer{
    @Override
    public void brand() {
        System.out.print("這是SamSung的打印機");
    }
}

Factory

public interface Factory {
     public Printer create();
}

FactoryA

public class FactoryHTC  implements Factory {
     public Printer create(){
        return new HTCPrinter();
    }
}

FactoryB

public class FactorySamsung implements Factory {
     public Printer create(){
        return new SamSungPrinter();
    }
}

6.優(yōu)點

1.“使用者” 無需關心創(chuàng)建過程,便于創(chuàng)建過程修改的維護。
2.新增對象時,只需添加對應的工廠就可以完成擴展。


7.缺點

1.每一個子工廠只能創(chuàng)建一種對象,導致每添加新對象時,類的數(shù)量也逐漸增多,同時對應增加了項目的復雜性與額外的開銷。


8.總結

  • 到此, 工廠模式 就解析完畢,后續(xù)我會把上述 三大類型模式 下的各子模式進行解析分享,
    請繼續(xù)關注linhaojian_簡書!
  • 如果喜歡我的分享,可以點擊 關注 或者 ,你們支持是我分享的最大動力 。
  • linhaojian的Github

歡迎關注linhaojian_CSDN博客或者linhaojian_簡書!

不定期分享關于安卓開發(fā)的干貨。

設計模式(Design pattern):簡單&粗暴解析
單例模式(Singleton Pattern):簡單&粗暴解析
簡單工廠模式(Easy Factory Pattern):簡單&粗暴解析
工廠模式(Factory Pattern):簡單&粗暴解析):簡單&粗暴解析
抽象工廠模式(Abstract Factory Pattern):簡單&粗暴解析
建造者模式(Builder Pattern):簡單&粗暴解析
代理模式(Proxy Pattern):簡單&粗暴解析
裝飾器模式(Decorator Pattern):簡單&粗暴解析
外觀模式(Facade Pattern):簡單&粗暴解析
享元模式(Flyweight Pattern):簡單&粗暴解析
觀察者模式(Observe Pattern):簡單&粗暴解析
策略模式(Strategy attern):簡單&粗暴解析


寫技術文章初心

  • 技術知識積累
  • 技術知識鞏固
  • 技術知識分享
  • 技術知識交流
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容