
1.前言
- 在之前的文章設計模式(Design pattern):簡單&粗暴解析中已經(jīng)為大家深入淺出解析了
設計模式的 七大原則、三大類型。 - 本文為大家解析三大類型中 創(chuàng)建型 里其中的
工廠模式。 - 文章中實例 linhaojian的Github
2.目錄

3.含義
簡單工廠模式的擴展,設立不同的子工廠,創(chuàng)建對應的一個對象。
4.解決
1.“使用實例者”和“實例創(chuàng)建過程”解耦,讓使用者不需關心創(chuàng)建過程,在改變創(chuàng)建過程時,不影響使用者。
2.添加新對象,需要修改工廠類,違反 開閉原則。
5.原理
設定一個父工廠接口,讓不同對象的創(chuàng)建封裝在不同的子工廠。
5.1 工廠模式結構

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):簡單&粗暴解析
寫技術文章初心
- 技術知識積累
- 技術知識鞏固
- 技術知識分享
- 技術知識交流