設計模式 建造者模式

2021-10-18 07:35:09 字數 1457 閱讀 2290

今天來給大家分享以下建造者模式

什麼是建造者模式呢,我不用太官方的語言給大家表示

首先建造就是指建立複雜物件,像如果乙個類中有相當多的屬性,且這些屬性有些需要賦值,有些不需要,那麼像我們之前可能會使用set方法進行設定,比如下面這樣

我們的person類,

public

class

person

測試**

public

class

test

}

我們使用大段的set方法,閱讀起來也有點不舒服,此時像這種屬性很多且賦值情況很多的類,我們就可以使用建造者模式+鏈式寫法+靜態內部類來實現

改造person類

public

class

person

public builder age

(string age)

public builder ***

(string ***)

public builder height

(string height)

public builder weight

(string weight)

//最後通過乙個builder方法返回person物件

public person builder()

}}

再看我們的測試**

public

class

test

}

雖然我們的person類內部的**增多了,但是換來的客戶端呼叫的**是簡潔了許多,並且,這樣的**格式大家一定在自己的程式設計過程中也遇到過。比如在mybatis用註解實現動態sql的時候,需要建立乙個類,類中寫方法然後返回sql語句,比如

public string insertuserinfo

(userinfo ui)")

;}if(ui.

getpassword()

!=null)")

;}}}

.tostring()

;}

還記得大三學習安卓的時候,裡面乙個alertdialog對話方塊,其實這個類內部的也是建造者模式。

還記得我當初工廠那篇文章嗎,我說工廠就是來創造東西的,咱們創造空調,而今天的建造者模式也是來建立東西的,那麼他們的區別在**呢?以下是我個人的見解

雖然兩者都是創造物件,

工廠注重建立結果,注重的是乙個產品結果產出

建造者注重建立過程,注重的是這個產品建立過程中屬性情況

就如空調的那個例子,從工廠的產品線上出來的空調都是格力空調,但是各個產品線的不同,就會建立不同的空調。

希望大家能從我的介紹中獲得一定的收穫,大家可以用我的**複製回去執行一下,細細體會建造者模式在建立複雜物件過程中的優勢,並能分辨出和工廠模式的區別

設計模式 建造者模式

在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...

設計模式建造者模式

今天看了乙個設計模式。總結下,以免忘了。如何引入建造者模式的呢?作者舉了個例子。建造小人。當然需要 頭,左手,右手,左腳,右腳,軀幹。建造的過程使用 使用類裡面的方法就行了。但是如果需要乙個胖的小人,乙個瘦的小人呢?就需要重新構造乙個胖人類,乙個瘦人類。當然 使用者還需要自己處理構造的過程。這樣 就...

設計模式 建造者模式

定義 將乙個複雜的物件的構建與它的表示分離,是的同樣的構建過程可以建立不同的表示。包括的要素 1 產品類 2 抽象建造者或者介面 3 建造者 4 導演類 建造者模式的優點 首先,建造者模式的封裝很好,使用建造者模式可以有效地封裝變化,注意在使用建造者模式的場景中,一般產品類和建造者介面是比較穩定的,...