04 設計模式 建造者模式

2022-08-20 14:09:14 字數 1430 閱讀 6611

建造者模式就好像蓋一棟房子,需要有設計師,圖紙,施工隊以及成品,

在這其中:

圖例如下:

成品類:

@data

@tostring

public class product

上面的成品類就是最終的產品所需要具備的屬性,我把它理解為實體類

圖紙類:

public abstract class builder
builder就是乙個對施工隊的抽象,也就在乙個工程中所需要的步驟,沒有具體的實現

施工隊類:

public class worker extends builder

@override

builder builda(string msg)

@override

builder buildb(string msg)

@override

builder buildc(string msg)

@override

builder buildd(string msg)

@override

product getproduct()

}

施工隊類是builder的實現類,確定了builder中步驟的具體操作

導演類:

public class director 

public static product build(builder builder, string msg1)

public static product build(builder builder, string msg1, string msg2)

public static product build(builder builder, string msg1, string msg2, string msg3)

public static product build(builder builder, string msg1, string msg2, string msg3, string msg4)

}

其用於指導具體的施工隊如何施工,控制先後次序等

測試類:

public static void main(string args) 

}

結果如下:

product

product

product

product

product

設計模式04 建造者模式

建造者模式是用於生產複雜物件,將複雜物件的建立與表示分離。room 具體的產品 ibuilder 抽象建造者 workbuilder 具體的建造者 company 指揮者,指揮建造者建立物件 使用者找裝修公司裝修房子,裝修公司 指揮者 制定裝修方案 抽象建造者 並找了裝修工人 具體建造者 裝修工人對...

設計模式 建造者模式

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

設計模式建造者模式

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