設計模式總結之Builder Pattern(建造者模式)
目錄
建立型設計模式:
結構型設計模式:
行為型設計模式:
Builder Pattern(建造者模式)
意圖
將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。適用性
* 當建立複雜物件的演算法應該獨立於該物件的組成部分以及它們的裝配方式時。* 當構造過程必須允許被構造的物件有不同的表示時。
結構
參與者:
Builder(抽象建造者角色)
— 為建立一個Product物件的各個部件指定抽象介面。
ConcreteBuilder(具體建造者)
— 實現Builder的介面以構造和裝配該產品的各個部件。
— 定義並明確它所建立的表示。
— 提供一個檢索產品的介面。
Director(導演角色)
— 構造一個使用Builder介面的物件。
Product(建造的產品)
— 表示被構造的複雜物件。 ConcreteBuilder建立該產品的內部表示並定義它的裝配過程。
— 包含定義組成部件的類,包括將這些部件裝配成最終產品的介面。
例子
建造者模式和工廠模式的區別
當創造一個物件需要很多步驟時適合使用建造者模式。
而當只需呼叫一個方法就可以簡單地建立整個物件時適合使用工廠模式。
相關推薦
設計模式總結之Builder Pattern(建造者模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Builder Pattern(建造者模式) 意圖 將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。適用性 * 當建立複雜物件的演算法應該獨立於該物件的組成部分以及它們的裝配方式時。
設計模式總結之TemplateMethod Pattern(模版方法模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: TemplateMethod Pattern(模版方法模式) 意圖 定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中。Template Method使得子類可以不改變一個演算法的結構即可重定義該演算法的
設計模式總結之Flyweight Pattern(享元模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Flyweight Pattern(享元模式) 意圖 運用共享技術有效地支援大量細粒度的物件。適用性 當以下所有的條件都滿足時,可以考慮使用享元模式: * 一個應用程式使用了大量的物件。 * 完全由於使用大量
設計模式總結之Bridge Pattern(橋接模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Bridge Pattern(橋接模式) 意圖 將抽象部分與它的實現部分分離,使它們都可以獨立地變化。 【GOF95】在提出橋樑模式的時候指出,橋樑模式的用意是"將抽象化(Abstraction)與實現化(I
設計模式總結之Iterator Pattern(迭代器模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Iterator Pattern(迭代器模式) 意圖 提供一種方法順序訪問一個聚合物件中各個元素, 而又不需暴露該物件的內部表示。適用性 1. 訪問一個聚合物件的內容而無需暴露它的內部表示。 2. 支援對聚合
設計模式總結之Proxy Pattern(代理模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Proxy Pattern(代理模式) 意圖 為其他物件提供一種代理以控制對這個物件的訪問。適用性 在需要用比較通用和複雜的物件指標代替簡單的指標的時候,使用Proxy模式。下面是一些可以使用Proxy模式常
設計模式總結之Visitor Pattern(訪問者模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Visitor Pattern(訪問者模式) 意圖 表示一個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。適用性 * 一個物件結構包含很多類物件,它們有不同的
設計模式總結之Adapter Pattern(介面卡模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Adapter Pattern(介面卡模式) 意圖 將一個類的介面轉換成另外一個客戶希望的介面。Adapter 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。 注:介面卡模式在詳細設計階段不需
設計模式總結之Facade Pattern(外觀模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Facade Pattern(外觀模式) 意圖 為子系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。適用性 * 當你要為一個複雜子系統提供一個簡單介
設計模式總結之Prototype Pattern(原型模式)
目錄 建立型設計模式: 結構型設計模式: 行為型設計模式: Prototype Pattern(原型模式) 意圖 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。適用性 •當要例項化的類是在執行時刻指定時,例如,通過動態裝載; •為了避免建立一個與產
多屬性類的設計--builder模式(建造者模式)
參考文件: https://www.cnblogs.com/lwbqqyumidi/p/3742562.html https://blog.csdn.net/superdangbo/article/details/80308820 https://www.cnblogs.com/aa
初識設計模式(建造者模式)
auth div bsp ddp des print 生成 pub 定義 前言:繼續學習設計模式,今天學習建造者模式。 建造者模式(Builder Pattern) 定義 又叫生成器模式。將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 設
【java設計模式】之 責任鏈(chain of resposibility)模式
責任鏈模式,顧名思義,就是一條鏈。這個鏈到底是怎麼執行的呢?它主要是將能夠處理同一類請求的物件連成一條鏈,所提交的請求沿著鏈傳遞,鏈上的物件逐個判斷是否有能力處理該請求,如果能則處理,如果不能則
遊戲中的設計模式七(建造者模式)
好久沒有更新設計模式系列教程了本文給大家介紹建造者模式寫在前面在建立遊戲物件時往往一個物件伴隨著多個屬性或建立邏輯此時為了構建這個複雜的遊戲物件將各個部分的邏輯進行分離(與工廠模式最主要的作用區別)案例分析建造者類using System.Collections; using
設計模式在遊戲中的應用--建造者模式(九)
建造者模式(Builder Pattern):將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式是一種物件建立型模式。通過這個定義,我們可以得出建造者是一種建立型模式,也就是說建造者模式的輸出是一個物件,也就是UML類圖中的pr
JAVA設計模式之簡單粗暴學建造者模式
.get 建造者模式 mybatis源碼 conf 模式 lan 分析 過程 程序 文章由淺入深,先用簡單例子說明建造者,然後分析模式的優缺點,最後結合優秀開源框架Mybatis,說明該模式的用處。 1、先定義一個機器人模型 package com.jstao.mo
Java設計模式菜鳥系列(十五)建造者模式建模與實現
郵箱 system for face tom 建造者模式 data mar 方法 轉載請註明出處:http://blog.csdn.net/lhy_ycu/article/details/39863125 建造者模式(Builder):工廠類模式提供的
Java設計模式學習筆記,三:建造者模式
() stat sys pri builder 統一 return tengine str 建造者模式:實現了構建和裝配的解耦,即對象的各個子組件單獨構建,再進行裝配,從而建造完整對象。 該模式適用於構建較為復雜的對象(多個子組件)。 不同的構建者,使用相同的裝配者,可以建
自定義dialog(建造者模式)
效果圖: Styles.xml <style name="updateStyleDialog" parent="android:Theme.Dialog"> <item name="android:windowFrame">@nul
Android總結之json解析(FastJson Gson 對比)
前言: 最近為了統一專案中使用的框架,發現專案中用到了兩種json解析框架,他們就是當今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,為了廢除其中一個所以來個效能和使用的大比拼。 FastJson簡介:Fastjson是一個Java語言編寫的JSON處理器,由阿里巴巴公