建造者模式(Builder Pattern):簡單&粗暴解析
阿新 • • 發佈:2018-12-20
1.前言
2.目錄
3.含義
一個例項有可能需要由很多不同部分組成,”建造者“ 就是把這些組成部分獨立出來 & 構建例項,使用者可以根據按需設定不同組成部分來獲取例項。
4.解決
1.複雜物件的建立。(物件與物件組成解耦)
5.原理
**通過 【建造者】這個中介,把 ”物件“ 與 ”物件的組成“ 分離 **。
5.1 建造者模式結構
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.缺點
- 產品必須有共同點(關聯性),範圍有限制。
8.總結
- 到此,
建造者模式
就解析完畢,後續我會把上述 三大型別模式 下的各子模式進行解析分享, 請繼續關注linhaojian_簡書! - 如果喜歡我的分享,可以點選 關注 或者 贊,你們支援是我分享的最大動力 。
不定期分享關於安卓開發的乾貨。
寫技術文章初心
- 技術知識積累
- 技術知識鞏固
- 技術知識分享
- 技術知識交流