1. 程式人生 > >建造者模式(Builder Pattern):簡單&粗暴解析

建造者模式(Builder Pattern):簡單&粗暴解析

1.前言

2.目錄

模式目錄.png

3.含義

一個例項有可能需要由很多不同部分組成,”建造者“ 就是把這些組成部分獨立出來 & 構建例項,使用者可以根據按需設定不同組成部分來獲取例項。

4.解決

1.複雜物件的建立。(物件與物件組成解耦)

5.原理

**通過 【建造者】這個中介,把 ”物件“ 與 ”物件的組成“ 分離 **。

5.1 建造者模式結構

抽象工廠結構1.png

5.2 結構分析

Product:定義需要組成產品。 ProductBuilder:定義產品組成部分。

5.3 例項(組裝印表機)

  • 印表機由”外殼、控制面板、介面、託紙架、卡紙導軌、送紙器、出紙器擴充套件板”“等各部分組成。

Product

public class Printer {
    private PrinterBuilder printerBuilder;//印表機建造者
    private Printer(PrinterBuilder printerBuilder){
        this.printerBuilder = printerBuilder;
    }
    public String getFacade() {
        return printerBuilder.facade;
    }
    public String getTuozhijia() {
        return
printerBuilder.tuozhijia; } public String getSendPaper() { return printerBuilder.sendPaper; } }

PrinterBuilder

public class PrinterBuilder{
        private String facade;//外觀
        private String tuozhijia;//託紙架
        private String sendPaper;//送紙器
        private Printer printer;
public PrinterBuilder setFacade(String facade) { this.facade = facade; return this; } public PrinterBuilder setTuozhijia(String tuozhijia) { this.tuozhijia = tuozhijia; return this; } public PrinterBuilder setSendPaper(String sendPaper) { this.sendPaper = sendPaper; return this; } public Printer build(){ return new Printer(this); } }

6.優點

1.組成部分獨立,易擴充套件。 2.把產品與產品的組成解耦。

7.缺點

  1. 產品必須有共同點(關聯性),範圍有限制。

8.總結

  • 到此, 建造者模式 就解析完畢,後續我會把上述 三大型別模式 下的各子模式進行解析分享, 請繼續關注linhaojian_簡書
  • 如果喜歡我的分享,可以點選 關注 或者 ,你們支援是我分享的最大動力 。

不定期分享關於安卓開發的乾貨。

寫技術文章初心

  • 技術知識積累
  • 技術知識鞏固
  • 技術知識分享
  • 技術知識交流