設計模式之生成器模式

2021-09-14 07:25:30 字數 1858 閱讀 2949

參考部落格1

生成器模式的核心是 : 當構建生成乙個物件的時候,需要包含多個步驟,雖然每個步驟具體的實現不同,但是都遵循一定的流程與規則 

舉例說明:

我們如果構建生成一台電腦,那麼我們可能需要這麼幾個步驟

雖然我們具體在構建一台主機的時候,每個物件的實際步驟是不一樣的,比如,有的物件構建了i7cpu的主機,有的物件構建了i5cpu的主機,有的物件構建了普通鍵盤,有的物件構建了機械鍵盤等。

但不管怎樣,你總是需要經過乙個步驟就是構建一台主機,一台鍵盤。

對於這個例子,我們就可以使用生成器模式來生成一台電腦,他需要通過多個步驟來生成。

首先我們需要乙個電腦類:

package builder;

public class computer

public void setscreen(string screen)

public void setkeyboard(string keyboard)

public void setmouse(string mouse)

public void setaudio(string audio)

}

然後我們建立乙個抽象的builder類(包含組裝電腦需要的流程,只是抽象的方法不具體實現):

package builder;

public abstract class computerbuilder

public void buildcomputer()

public abstract void buildmaster();

public abstract void buildscreen();

public abstract void buildkeyboard();

public abstract void buildmouse();

public abstract void buildaudio();

}

然後我們實現兩個具體的builder類,分別是惠普電腦的builder和戴爾電腦的builder

package builder;

public class hpcomputerbuilder extends computerbuilder

@override

public void buildscreen()

@override

public void buildkeyboard()

@override

public void buildmouse()

@override

public void buildaudio()

}

然後我們實現乙個director類:

package builder;

public class director

public computer getcomputer()

public void constructcomputer()

}

最後測試一下,開始組裝

對不同型別的物件需要實現不同的具體構造器的類,這可能回答大大增加類的數量

jdk中實現的生成器模式:

設計模式之 生成器模式

在產品結構比較複雜,構造過程比較繁瑣,一次性構造比較難的時候,我們可以採取分而治之的原則,將產品元件化,每個元件由專門的廠商來生產,最後的產品指派給制定的車間進行最後裝配.這種方式其實是現代製造業的一種典型的模式.比如汽車,飛機的製造等.這樣做的好處是 1.產品的部件由專門的生產廠商來生產,這樣分工...

設計模式之 生成器模式

在產品結構比較複雜,構造過程比較繁瑣,一次性構造比較難的時候,我們可以採取分而治之的原則,將產品元件化,每個元件由專門的廠商來生產,最後的產品指派給制定的車間進行最後裝配.這種方式其實是現代製造業的一種典型的模式.比如汽車,飛機的製造等.這樣做的好處是 1.產品的部件由專門的生產廠商來生產,這樣分工...

設計模式之 生成器模式

在產品結構比較複雜,構造過程比較繁瑣,一次性構造比較難的時候,我們可以採取分而治之的原則,將產品元件化,每個元件由專門的廠商來生產,最後的產品指派給制定的車間進行最後裝配.這種方式其實是現代製造業的一種典型的模式.比如汽車,飛機的製造等.這樣做的好處是 1.產品的部件由專門的生產廠商來生產,這樣分工...