設計模式 建造者模式

2021-08-20 20:26:46 字數 2466 閱讀 9289

建造者模式:將乙個複雜物件的構建與他的表示分離,使得同樣的構建過程可以建立不同的表示;

也就是說我們建立乙個物件的時候,建造過程是確定的,但是具體的細節是不同的

使用場景:

需要生成的產品物件有複雜的內部結構,這些產品物件具備共性;

隔離複雜物件的建立和使用,並使得相同的建立過程可以建立不同的產品。

建造者模式基礎類圖:

假如我們要建造乙個電腦;建造電腦的每乙個模組都會根據不同的配置而又不同,但是我們的建造電腦的過程是一樣的,都會有主機板,cpu,記憶體,硬碟。顯示卡,機箱,只需要將他們拼裝到一起基本上一台電腦主機就完成了;

下面我們用**通過建造者模式簡單的建造乙個電腦:

computer 類:

public

class computer

public

void

setcpu(string cpu)

public string getmainboard()

public

void

setmainboard(string mainboard)

public string getmemory()

public

void

setmemory(string memory)

public string getdisk()

public

void

setdisk(string disk)

public string getgraphics()

public

void

setgraphics(string graphics)

public

void

show()

}

computerbuilder類:

public

abstract

class computerbuilder

public

computerbuilder(computer computer) else

}public

abstract

void

addmainboard();

public

abstract

void

addcpu();

public

abstract

void

addmemory();

public

abstract

void

adddisk();

public

abstract

void

addgraphics();

public computer getcomputer()

}

computerbuilderwithlow類:

public

class

computerbuilderwithlow

extends

computerbuilder

public

computerbuilderwithlow(computer computer)

@override

public

void

addmainboard()

@override

public

void

addcpu()

@override

public

void

addmemory()

@override

public

void

adddisk()

@override

public

void

addgraphics()

}

computerbuilderdirector 類:

public

class computerbuilderdirector

public

void

buildacomputer()

public computer getcomputer()

}

client 類

import org.junit.test;

public

class

client

}

以上為建造者類的**,可見當我們想要乙個高配置的電腦的話只需要新加乙個高配置電腦的建造者類,繼承建造者虛類,實現了虛方法;就可以使用指揮者建造出這個電腦;建造者模式需要產品間具有很高的相似度,如果差異性過大則不適合使用建造者模

設計模式 建造者模式

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

設計模式建造者模式

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

設計模式 建造者模式

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