Java設計模式 建造者模式

2021-07-10 16:54:13 字數 1293 閱讀 6205

建造者模式就是一步一步的建立乙個複雜的物件,而且允許使用者指定複雜物件的型別和內容。建造者的模式結構一般如下圖所示。

builder 類是乙個抽象類,用於定義一些建立子部件的方法,builder類中應該還有乙個 getresult() 方法,用於將建立好的部件組裝成乙個產品返回。

director 類又稱為指揮者,用於安排複雜物件的建造次序,通過construct() 方法,指導builder類完成組裝。

通過乙個例子來更好的理解建造者模式,比如說現在的手機都支援更換主題,所有的主題建造過程都是類似的,比如說更換圖示,背景,提示音,那麼這個時候就可以通過建造者模式來完成這一過程。

先來設計一下product和builder類

public class product 

public void setbackground(string background)

public string geticon()

public void seticon(string icon)

public string getsounds()

public void setsounds(string sounds)

}public abstract class builder

public abstract void buildbackground();

public abstract void buildicon();

public abstract void buildsounds();

}

可見,不論什麼樣的主題,以上**都是通用的,對於不同的主題,只需要在concretebuilder中進行設定就可以了。

public class concretebuilder extends builder

public void buildicon()

public void buildsounds()

}

既然產品生產過程已經構建出來了,那麼就到了director 類發揮作用的時候了,現在就由director 來指揮各個部件的創造,並且將組裝好的產品返回給客戶端。

public class director 

}

可見director 類中只有乙個簡單的方法,有的時候當產品的部件不是很多的時候,完全可以將該方法放到builder類中,從而省略director 類。

已經看出,建造者模式和抽象工廠模式很類似。其實,抽象工廠模式更側重於生產 「部件」 , 而建造者模式側重於將各個 部件組裝成乙個產品。

java設計模式 建造者模式

分為四部分 產品角色,抽象構建者,具體構建者,指揮者 建造者模式 使用者不需要知道具體的構造結構過程,只需要與指揮者進行溝通即可。指揮者根據不同的構建者得到不同的產品。構建者分裝了整個產品的構建,是的產品能夠完整的構建出來。產品角色 public class car 抽象構建者 public int...

java設計模式 建造者模式

適用場景 乙個物件有多個子物件構成,我們要建這個物件的時候,需要很多步驟,構建多個子物件,然後再由子物件構成乙個物件,我們就可以考慮用建造者模式 建造者本質 讓建造子物件的builder和裝配物件director解耦,從而建造出複雜的物件 舉個例子 我們來構建乙個電腦物件,它有滑鼠,顯示器,鍵盤等子...

Java設計模式 建造者模式

建造者 builder 模式,又稱為生成器模式。它是將乙個複雜的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。當採用了建造者模式,使用者就只需要指定需要建造的型別就可以得到想要的最終結果,至於具體的構建過程和構建細節不需要過多知曉。director 指揮者,主要負責排程builder介面...