1. 程式人生 > >Java設計模式—建造者模式

Java設計模式—建造者模式

建造者模式:

       將一個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的物件。

   建造者模式表示是將複雜的內部建立封裝在內部,對於外部呼叫的人來說,只需要傳入者和建造工具,對於內部是如何建造成成品的,呼叫者無需關心。

通用類圖如下:



在建造者模式中,有如下4個角色:
● Product產品類
通常是實現了模板方法模式,也就是有模板方法和基本方法。
● Builder抽象建造者
規範產品的組建,一般是由子類實現。
● ConcreteBuilder具體建造者
實現抽象類定義的所有方法,並且返回一個組建好的物件。
● Director導演類
負責安排已有模組的順序,然後告訴Builder開始建造,

通用程式碼如下:

產品類:

public class Product {
     public void do Something(){
             //獨立業務處理
     }
}

抽象建造者:

public abstract class Builder {    
     //設定產品的不同部分,以獲得不同的產品
     public abstract void setPart();
     //建造產品
     public abstract Product buildProduct();
}

     set Part方法是零件的配置,什麼是零件?其他的物件,獲得一個不同零件,或者不同的裝配順序就可能產生不同的產品。

具體建造者:

public class ConcreteProduct extends Builder {
     private Product product = new Product();
     //設定產品零件
     public void set Part(){
             /*
              * 產品類內的邏輯處理
              */
     }  
     //組建一個產品
     public Product buildProduct() {
             return product;
     }
}

導演類:

public class Director {
     private Builder builder = new ConcreteProduct();
     //構建不同的產品
     public Product getAProduct(){
             builder.setPart();
             /*
              * 設定不同的零件,產生不同的產品
              */
             return builder.buildProduct();
     }
}

導演類起到封裝的作用,避免高層模組深入到建造者內部的實現類。

優點:


● 封裝性
● 建造者獨立,容易擴充套件
● 便於控制細節風險

使用場景:


● 相同的方法,不同的執行順序,產生不同的事件結果時,可以採用建造者模式。
● 多個部件或零件,都可以裝配到一個物件中,但是產生的執行結果又不相同時,則可以使用該模式。
● 產品類非常複雜,或者產品類中的呼叫順序不同產生了不同的效能,這個時候使用建造者模式非常合適。
● 在物件建立過程中會使用到系統中的一些其他物件,這些物件在產品物件的建立過程中不易得到時,也可以採用建造者模式封裝該物件的建立過程。該種場景只能是一個補償方法,因為一個物件不容易獲得,而在設計階段竟然沒有發覺,而要通過建立者模式柔化建立過程,本身已經違反設計的最初目標。


建造者模式可以這麼理解:相同的方法,不同的執行順序,產生不同的事件結果。

此處相同的方法指:方法A,方法B,方法C。

兩種執行順序:A—B—C和A—C—B

產生的結果不同。

也可以理解為在模板方法中對基本方法的呼叫順序不同。然後模板模式就成了建造者模式。

相關推薦

java設計模式——建造模式

一. 定義與型別 定義:將一個複雜物件的構建與它的表示分離,使用同樣的構建過程可以建立不同的表示 使用者只需制定需要建造的型別就可以得到它們,建造過程以及細節不需要知道 型別:建立型 建造者模式與工廠模式比較相近,它們的區別在於, 建造者模式注重方法的呼叫順序,工廠模式注重建立產品 它們的建立力度

java設計模式----建造模式

目錄   1.什麼是建造者模式   2.建造者模式的簡單實現(造飛機為例)   3.建造者模式使用場景 一、什麼是建造者模式   建造者模式它分離物件子元件的單獨構造和裝配。從而可以構造出複雜的物件。   由於實現了構造和裝配的解耦。不同的構造器,相同的裝配,可以構建出不同的物件。相同的構建器,不

設計模式-建造模式java程式碼案例)

建造者模式 定義 將一個複雜物件的構建與表示分離,使得同樣的構建過程可以建立不同的表示。 結構 抽象建造者類(builder):為建立product物件而指定各個元件的抽象介面 具體建造類(concreteBuilder):實現builder介面,重寫方法構建不同的

Java常用設計模式————建造模式

引言 建造者模式(Builder Pattern)使用多個簡單物件一步一步構建成一個複雜的物件。這種型別的設計模式屬於建造型模式,它提供了一種建立物件的最佳方式。 一個Builder會一步步構建最終的物件。該Builder類是獨立於其他物件的。 實現概要 建造者模式的

Java 設計模式——建造模式(Builder Pattern)

  前言 一、簡介 ​二、實現方式 三、常見第一種方式 (1)一般有以下幾個角色 (2)舉個例子 (3)具體步驟 (4)具體程式碼 三、第二種方式 (1)主要有三個角色:抽象建造者、具體建造者、產品 (2)舉個例子 (3)具體步驟

淺談Java設計模式——建造模式(Builder)

一、概述         將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。         建造者模式將複雜產品的構建過程封裝分解在不同的方法中,使得建立過程非常清晰,能夠讓我們更加精確的控制複雜產品物件的建立過程,同時它隔離了複雜產品物件的建立

3.java設計模式-建造模式

Java設計模式-建造者模式 在《JAVA與模式》一書中開頭是這樣描述建造(Builder)模式的:   建造模式是物件的建立模式。建造模式可以將一個產品的內部表象(internal representation)與產品的生產過程分割開來,從而可以使一個建造過程生成具有不同的內部表象的產品物件。

java設計模式-----建造模式

建造者模式 定義 : 將一個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示.也就是說使用者不需要知道一個複雜的物件時如何建立的.使用者只需要知道使用構造不同物件的方法(Director)就能得到一個完整的複雜物件的例項 建造者模式通常包

Java設計模式】:建立型模式建造模式

1.建造者模式定義 建造者模式,顧名思義的就是類似建房子,有一個固定的流程。在大話設計模式中,作者舉了一個例子大概意思是同一道菜在中國的每一個地方都有不同的味道(LZ印象最深的是酸菜魚,來杭州之後印象最深刻的是清蒸鱸魚。),而肯德基的雞腿、漢堡在每一個城市都是一樣的味道。建造者模式實

java設計模式——建造模式(對建構函式的優化)

我不打算跳入設計模式的過多細節中,因為已經有一大堆的文章和書籍很詳細的解釋過了。所以我打算告訴你為什麼和什麼時候你應該考慮使用設計模式。然而,值得一提的是本文中的模式和四人幫的《Design Patterns: Elements of Reusable Obje

Java設計模式, 單例模式,工廠模式,建造模式和觀察模式

  1、單例模式            寫法:    懶漢式                 /**     * 懶漢模式     * 宣告一個靜態物件,並且在第一次呼叫getInstance 方法時進行初始化     * Created by Bill on 2017/12

JAVA 23種設計設計模式---建造模式

建造者模式跟之前的模式一樣   要抓住以下幾點,在使用時就會有了構建思路。 程式碼結構及介紹: 電腦: package com.zxf.builder; /**  * 假設一臺電腦由 主機板、硬碟、CPU組成  * @author Ad

Java設計模式--建造模式

建造者模式【Builder Pattern 】 在模板方法模式時用到了公司生產馬車的例子。這裡繼續,客戶有了新的要求,就是能夠控制基本方法的執行順序。 先看一下類圖: 定義一個車輛模型的抽象類,所有的車輛模型都繼承這個類 public abstrac

Java設計模式建造模式

建造者模式:       將一個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的物件。   建造者模式表示是將複雜的內部建立封裝在內部,對於外部呼叫的人來說,只需要傳入建造者和建造工具,

android使用Java設計模式建造模式(Builder模式)的寫法:

建造者模式的定義 將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。 這裡給大家分析一下: 定義的前半句說,構造與表示分離,其實就是繼承(或實現)。 兩種工廠模式也都是為某個物件提供一個介面,而且無需指定它們的具體類。

設計模式簡單介紹(java語言)-- 建造模式

設計模式簡單介紹(java語言)– 建造者模式 1. 建造者模式的定義 建造者模式也叫做生成器模式,其定義如下: 將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。 通用類圖: 在建造者模中,通常有如下4個角色:

java設計模式——建造模式(Builder)

相對於抽象工廠模式有了一定優勢,抽象工廠模式只能建立儲存單一類的例項,而建造者模式能儲存多個類的例項了。上程式碼,pass:前幾篇都用First、Second啥的,沒法混了,現在換成人了(*^__^*

設計模式-建造模式(05)

部分 目標 bstr 好的 細節 get 邏輯 str ext 定義   建造者模式(Builder Pattern)也叫做生成器模式。英文原話是:Separate the construction of a complex object from its represe

設計模式建造模式

face 組合 print rac 快餐 span system app 如何解決 建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個復雜的對象。 意圖:將一個復雜的構建與其表示相分離,使得同樣的構建過程可以創建不同的表示。 主要解決:主要

設計模式——建造模式

組成 this 步驟 ring 相同 共同點 之間 優點 基礎 什麽是建造者 建造者模式實際上是常用的設計模式。顧名思義,builder的意思是建造者或者建築工人,談到建造自然會想到樓房。樓房是千差萬別的,樓房的外形、層數、內部房間的數量、房間的裝飾等等都不一樣,但是對於