Java設計模式之建造者模式

2021-09-24 13:01:46 字數 2831 閱讀 9385

定義

建造者模式(builder pattern)使用多個簡單的物件一步一步構建成乙個複雜的物件。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。

角色抽象建造者(builder):抽象的建造者,為建立乙個產品物件的各個部件指定抽象介面。

具體的建造者(concretebuilder):實現builder的介面以構造和裝配該產品的各個部件,定義並明確它所建立的表示,並提供乙個檢索產品的介面。

指揮者(director):構造乙個使用builder介面的物件。指揮者類director,該類的作用主要有兩個:一方面它隔離了客戶與生產過程;另一方面它負責控制產品的生成過程。指揮者針對抽象建造者程式設計,客戶端只需要知道具體建造者的型別,即可通過指揮者類呼叫建造者的相關方法,返回乙個完整的產品物件。

具體產品(product):表示被構造的複雜物件。concretebuilder建立該產品的內部表示並定義它的裝配過程,包含定義組成部件的類,包括將這些部件裝配成最終產品的介面。

與工廠模式的區別

建造者模式與工廠模式的區別:

工廠模式一般都是建立乙個產品,注重的是把這個產品建立出來就行,只要建立出來,不關心這個產品的組成部分。從**上看,工廠模式就是乙個方法,用這個方法就能生產出產品。

建造者模式也是建立乙個產品,但是不僅要把這個產品建立出來,還要關係這個產品的組成細節,組成過程。從**上看,建造者模式在建造產品時,這個產品有很多方法,建造者模式會根據這些相同方法但是不同執行順序建造出不同組成細節的產品。

例項具體產品類(product)

public

class

shoes

public

shoes

(string designdrawings, string sole, string shoebody, string shoelace, string insole)

public string getdesigndrawings()

public

void

setdesigndrawings

(string designdrawings)

public string getsole()

public

void

setsole

(string sole)

public string getshoebody()

public

void

setshoebody

(string shoebody)

public string getshoelace()

public

void

setshoelace

(string shoelace)

public string getinsole()

public

void

setinsole

(string insole)

@override

public string tostring()

';}}

抽象建造者(builder)

public

abstract

class

shoesbuilder

}

具體的建造者(concretebuilder)

//跑鞋建造者

public

class

runshoesbuilder

extends

shoesbuilder

@override

public

void

setsole

(string sole)

@override

public

void

setshoebody

(string shoebody)

@override

public

void

setshoelace

(string shoelace)

@override

public

void

setinsole

(string insole)

}//休閒鞋建造者

public

class

leisureshoesbuilder

extends

shoesbuilder

@override

public

void

setsole

(string sole)

@override

public

void

setshoebody

(string shoebody)

@override

public

void

setshoelace

(string shoelace)

@override

public

void

setinsole

(string insole)

}

指揮者(director)

public

class

shoesdirector

public shoes directleisureshoes

(leisureshoesbuilder shoesbuilder)

}

測試類:

public

class

buildertest

}

java設計模式之建造者模式

概念 建造者模式是指把乙個複雜物件的構建和表示分離,就像建房子一樣,每乙個房子的建造流程都是相同的,但是卻會有很多形狀不一,樣式不同的房子,這裡的房子實際上就是房子這個物件的表示,建造的流程就是房子物件的構建 建造者模式的構成部分 1.builder介面 builder介面設計要表示物件的構建流程,...

Java設計模式之建造者模式

builder模式也叫建造者模式或者生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式之一,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動 態地建立具有復合屬性的物件。具體的構建物件 房子 public class h...

JAVA設計模式之建造者模式

分離物件子元件,子元件單獨構造 由builder來負責 和裝配模式 由director負責 從而可以構造出複雜物件。這個模式適用於某個物件構造特別複雜。由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以生產不同的物件的物件 相同的構建器和不同的裝配順序也可以構造不同的物件,這樣實現了構建演...