1. 程式人生 > >Gson原始碼研究(二) 建造者模式建立Gson物件

Gson原始碼研究(二) 建造者模式建立Gson物件

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">//預設建立</span>
Gson gson= new Gson();
//通過GsonBuilder建立
GsonBuilder builder=new GsonBuilder();
Gson gson=builder.create();


建立Gson物件可以使用new Gson物件,也可以使用GsonBuilder來建立Gson物件。
new Gson()建立的Gson物件是預設配置的Gson物件
使用GsonBuilder可以設定各種元件來建立特殊的Gson物件。
推薦使用GsonBuilder的create()方式來建立Gson物件


其中GsonBuilder建立Gson物件使用了設計模式建造者模式
GsonBuilder在配置Gson物件所需要的功能使用了鏈式的方式,有點像jquery鏈式呼叫來配置
最後呼叫create()來建立Gson,這些配置不需要按順序呼叫
Gson gson = new GsonBuilder()
      .registerTypeAdapter(Id.class, new IdTypeAdapter())
      .enableComplexMapKeySerialization()
      .serializeNulls()
      .setDateFormat(DateFormat.LONG)
      .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
      .setPrettyPrinting()
      .setVersion(1.0)
      .create();
配置方法清單介紹:



建造者模式
產品:Gson
建立者:GsonBuilder 主要建立Gson物件
導演者:使用者呼叫GsonBuilder
下面是我模擬的GsonBuilder建立Gson的建立者模式

僅供查考:

package com.zghw.gson;

public final class GsonBuilder {
    private Object config1 = new Object();
    private Object config2 = new Object();
    private Object confign = new Object();

    /**
     * 建立者設定配置
     * 
     * @param config1
     * @return
     */
    public GsonBuilder setConfig1(String config1) {
        this.config1=config1;
        System.out.println("設定配置1後返回,配置後的建立者");
        return new GsonBuilder();
    }

    /**
     * 建立者設定配置2
     * 
     * @param config2
     * @return
     */
    public GsonBuilder setConfig2(String config2) {
        this.config2=config2;
        System.out.println("設定配置2後返回,配置後的建立者");
        return new GsonBuilder();
    }

    /**
     * 設定配置N
     * 
     * @return
     */
    public GsonBuilder setConfign() {
        this.confign=config1;
        System.out.println("設定配置n後返回配置後的建立者");
        return new GsonBuilder();
    }

    public Gson create() {
        System.out.println("組合各種配置進行產品的建立");
        return new Gson(config1,config2,confign);
    }
}

package com.zghw.gson;

public final class Gson {
    
    public Gson() {
        this(new Object(),new Object(),new Object());
    }

    Gson(Object config1, Object config2, Object config3) {
        System.out.println("初始化所有配置!");
    }
}

相關推薦

Gson原始碼研究() 建造模式建立Gson物件

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">//預設建立</span>Gson gson= new Gs

【設計模式建造模式(建立型)

建造者模式      將一個物件的構建與它的表示分離,使得同樣的構建過程創建出不同的表示。 模型圖  程式碼 public abstract class Builder { public abstract void BuilderPar

設計模式() 建造模式

參考:http://www.runoob.com/design-pattern/builder-pattern.html 介紹 意圖:將一個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。 主要解決:主要解決在軟體系統中,有時候面臨著"一個複雜物件"的建立工作,其通常由各

設計模式建造模式(建立型)

模式定義 建造者模式屬於23種設計模式中的建立型模式,可以理解為建立物件的一種很好的方法。 所謂建造者模式就是將元件和元件的元件過程分開,然後一步一步建造一個複雜的物件。所以建造者模式又叫生成器模式。 建造者模式類圖 模式結構 建造者模式包含如下角

複雜物件的組裝與建立——建造模式

8.3 完整解決方案       Sunny公司開發人員決定使用建造者模式來實現遊戲角色的建立,其基本結構如圖8-3所示: 圖8-3 遊戲角色建立結構圖       在圖8-3中,ActorCont

建造模式-Builder Pattern 複雜物件的組裝與建立——建造模式):遊戲角色設計的建造模式解決方案

8.3 完整解決方案       Sunny公司開發人員決定使用建造者模式來實現遊戲角色的建立,其基本結構如圖8-3所示: 圖8-3 遊戲角色建立結構圖       在圖8-3中,Ac

設計模式的藝術 建立模式建造模式

不懂使用為學過,說出用途,繪製結構為了解,不會靈活使用基本等於沒學。 前言 沒有人想買汽車的時候只會單獨買一個輪胎或者一個方向盤,大家買的都是組裝好的一輛完整的汽車,如何將這些部件組裝成一個完整的汽車並返回給客戶,這就是建造者模式需要解決的問題。建造者模式又被稱之為生成器模式,它是一種較為複

Java設計模式(四)之建立模式建造模式

一、定義: 建造者模式將一個複雜物件的構建與表示分離,使得同樣的構建過程可以建立不同的表示。 建造者模式的UML結構圖: 建造者模式主要包含四個角色:        Builder:抽象建造者。它宣告為建立一

第6章 建立模式建造模式

1. 建造者(Builder,或生成器)模式的定義 (1)將一個複雜物件構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。   ①上述提到的“構建”是指構造過程的演算法(即構造順序,位於director類中),“表示”指生成各部件的具體細節(或叫實現,位於Builder或其子類中)。

設計模式(三)建造模式Builder(建立型)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

設計模式-建立模式-建造模式

設計模式-建立型模式-建造者模式 建造者模式即生成器模式,將一個複雜的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。 程式碼如下 // 產品類 public class Product{ public void doSomething(){ // 業務處理 }

java設計模式(建立模式)之建造模式

1.建造模式的本質 1.實現了物件元件的單獨構造和裝配這個模式的構建過程複雜情況下使用. 2.實現了構建和裝配的解耦,不同構建起,相同的裝配,可以做出不同的物件.相同的構建起,不同裝配順序也可以出現不同的物件,試下了構建演算法/裝配演算法的解耦.實現了

設計模式--建立模式--建造模式

//Creational Patterns--builder //建立型模式--建造者模式 //1.Builder    抽象建造者 //2.ConcreteBuilder    具體建造者 //3.Director    指揮者 //4.Product 產品 //產品

建立模式--建造模式【Builder Pattern】

介紹 建造者模式使用多個簡單的物件一步一步構建成一個複雜的物件。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。 原始碼 java.lang.StringBuilder#appe

設計模式與XML(建造模式和單例模式(C++)

一、實驗目的及要求 1、掌握建立型模式的概念。 2、掌握工廠模式、抽象工廠模式、單例模式、建造者模式、原型模式的構造方式及使用情景。 二、實驗裝置(環境) 1、   軟體需求: Dev-Cpp5.4, Rational Rose / Microsoft Visio

建造模式-複雜例項的建立與組裝

建造者模式定義 將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。 建造者模式結構圖 建造者模式角色介紹 Builder:抽象建造者角色,負責定義建立Product產品物件的各個部件介面,同時定義獲取完成Product產品物件的介面。 Con

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

建造者模式,又稱生成器模式:將一個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。 三個角色:建造者、具體的建造者、監工、使用者(嚴格來說不算) 建造者角色:定義生成例項所需要的所有方法; 具體的建造者角色:實現生成例項所需要的所有方法,並且定義獲取最終生成例項的方法; 監工

建造模式 生成器模式 建立型 設計模式(五)

建造者模式 Builder 也叫做生成器模式 在正式開始建造者模式之前,先回顧下抽象工廠模式 本人的所有系列文章都是自己學習的記錄過程,均有比較嚴格的先後順序,如果不清楚抽象工廠模式可以先往前翻翻 從抽象工廠演化 抽象工廠模式是工廠模式的進一步抽象擴充套件 不僅僅可以建立某種等級結構的產品,可以建立

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

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

Android_物件建立And建造模式

作為一個普通的Android的上層開發,最早引以為榮的事情就是自己實現了某些效果,完成了某些自定義控制元件自豪,會使用當前較為流行的開源框架而自豪,比如RxJava retrofit fresco….. 這些天也是不是也反思為毛招聘Android工程師,技能點