什麼是建造者模式,正如其名,也就是用來建造某個物件的一種設計模式。也不是什麼物件都用這個建造者模式,該模式主要用於構建比較複雜的物件,也就是建立起來比較繁瑣的物件。比如上篇抽象工廠中所說的高階手機物件,它由好多種基產品構成,包括處理器、螢幕、攝像頭等等。換句話說就是乙個類中包含許多其他類做為其屬性、依賴其他類。在構建這麼乙個複雜類的時候,如果乙個個物件,一層層去單獨建立那步驟可想而知是相當繁瑣的。所以就有了建造者模式來解決這個繁瑣的問題。
下面還是以上篇抽象工廠的例子為基礎來用建造者模式構建乙個高階手機整機。
上面是簡化的uml圖,由上篇抽象工廠生產產品族介面提供基產品物件,由huaweiphonebuilder構建高階手機huaweip40pro。
建造者介面:
package com.minant.builder;
/** * @classname imyphone
* @description todo 整機構建介面
* @author minant
* @date 2020/5/19
* @version v1.0
*/public inte***ce phonebuilder
整機介面:
package com.minant.builder;
/** * @classname myphone
* @description todo 整機介面
* @author minant
* @date 2020/5/19
* @version v1.0
*/public inte***ce myphone
建造者實現類:
package com.minant.builder;
import com.minant.factorys.abstracts.heigherphonefactory;
import com.minant.factorys.abstracts.imobilephone;
/** * @classname huaweiphonebuilder
* @description todo 華為手機
* @author minant
* @date 2020/5/19
* @version v1.0
*/public class huaweiphonebuilder implements phonebuilder
@override
public myphone getphone()
}
高階機整機:
package com.minant.builder;
import com.minant.factorys.abstracts.icamer;
import com.minant.factorys.abstracts.icpu;
import com.minant.factorys.abstracts.iscreen;
/** * @classname huaweip40pro
* @description todo 整機實現類
* @author minant
* @date 2020/5/19
* @version v1.0
*/public class huaweip40pro implements myphone
public huaweip40pro(icpu cpu, icamer camer, iscreen screen)
@override
public void message()
public icpu getcpu()
public void setcpu(icpu cpu)
public icamer getcamer()
public void setcamer(icamer camer)
public iscreen getscreen()
public void setscreen(iscreen screen)
}
測試類:
package com.minant.builder;
import com.minant.factorys.abstracts.heigherphonefactory;
/** * @classname testbuilder
* @description todo 建造者模式
* @author minant
* @date 2020/5/19
* @version v1.0
*/public class testbuilder
}
結果構建出高階手機huaweip40pro:
至此,建造才模式結束。
設計模式GOF23 建造者模式
建造者模式 builder 是建立者模式的一種,是一種負責建立物件的模式。在實際開發中,有的時候我們需要建立的物件十分複雜,有時候需要很多步奏來處理。建造者模式的任務就是分離和物件子元件的單獨構造 由builder負責 和裝配 由director負責 從而構造出複雜的物件。使用的場景就是構造比較複雜...
GOF23 建造者模式
建造者模式定義 建造者模式分離了物件子元件的構造 由builder構造 和裝配 由director裝配 從而可以構造出複雜的物件。適用環境 某個物件構建過程比較複雜。實現物件的建立和裝配解耦,讓客戶端使用者只需要關心自己得到的產品而不是關心產品時怎樣具體產生的 這一點類似工廠模式。一 工廠模式與建造...
GOF23 設計模式
design patterns elements of reusable object oriented software 即後述 設計模式 一書 由 erich gamma richard helm ralph johnson 和 john vlissides 合著 addison wesley,...