參考部落格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.產品的部件由專門的生產廠商來生產,這樣分工...