java設計模式之建造

2021-08-29 02:20:34 字數 1605 閱讀 7227

那從例子開始,建造者模式就是要造東西嘛,造點啥呢?我腦海中曾經一頓掙扎,什麼,造汽車啊,大樓啊,電腦啊等等,後來發現還是簡單點造個人吧。這樣大家都好理解。讀者也可以理解造機械人。只要你喜歡。

那我們新建乙個人的類。

public class human

public void sethead(string head)

public string getbody()

public void setbody(string body)

public string gethand()

public void sethand(string hand)

public string getfoot()

public void setfoot(string foot)

}這個就是人的類了,我們取名為human。只要是人都是這個類出來的。

那我們想要造人的話,得有乙個標準吧?  來要造人的話得有乙個步驟吧?頭,身體,手,腳,那都得有。

所以我們先寫乙個介面。乙個定義了造人標準的介面。

public inte***ce ibuildhuman

看,乙個介面定義好了。有各種造部位的方法,最後給個createhuman方法給你返回乙個我們想要造的人。

現在,人的類和造人的標準我們都定義好了。那我們可以先造乙個人出來,先造乙個高智商的人吧。

public class smartmanbuilder implements ibuildhuman

@override

public void buildhead()

@override

public void buildbody()

@override

public void buildhand()

@override

public void buildfoot()

@override

public human createhuman()

}這個高智商的造人過程自然是實現了ibuildhuman這個造人標準的介面了。然後就是set方法,最後返回造好的human。

好的,其實到這裡呢,我們已經完成了建造的過程。那就這麼簡單的建造過程,還搞了乙個建造模式嗎?非也。接下來,就是介紹建造者模式的精髓,那就是director。這個director呢,就是來執行我們剛才的造人動作的。沒錯,精髓就是我們剛才的造人動作。我們先看**:

public class director

}這個director類呢,重點在於createhumanbydirecotr的引數是我們的造人標準的介面。這樣一來,只要是實現了我們的這個介面的類,就都可以作為引數,我們剛剛不是造了乙個高智商的人嗎?那我們如果想造乙個身體運動能力出色的人,也就是運動員,這個director也可以啟動這個造人過程,只要我們把這個運動員的類先寫好。我們來看看director是如何發揮的:

public class buildertest  

}輸出結果為:

智商180的頭腦

新的身體

新的手新的腳

看,createhumanbydirecotr這個方法帶的引數就是我們高智商人的那個類。那我們想造乙個運動員,就可以像高智商人那樣建好類,然後傳進來就可以了!

java設計模式之建造者模式

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

Java設計模式之建造者模式

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

JAVA設計模式之建造者模式

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