1.建造者模式的作用:
1.分離了物件子元件的構建和裝配,構建由builder負責,裝配由director負責。。 從而可以構 造出複雜的物件。這個模式適用於:某個物件的構建過程複雜的情況下使用。
2.由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以做出不同的物件; 相同的構建器,不同的裝配順序也可以做出不同的物件。也就是實現了構建演算法、裝配 演算法的解耦,實現了更好的復用。
2.**案例:
需求:需要乙個飛船!
需要乙個飛船類
需要乙個構造飛船的介面 (飛船的各個子元件)
需要乙個構造飛船的實現類
需要乙個裝配飛船的介面
需要乙個裝配飛船的實現類
package com.example.shejimoshi.builder;
/** * 需要乙個飛船的產品
*/public class airship
public orbitalmodule getorbitalmodule()
public void setorbitalmodule(orbitalmodule orbitalmodule)
public escapetower getescapetower()
public void setescapetower(escapetower escapetower)
public engine getengine()
public void setengine(engine engine)
}//軌道艙
class orbitalmodule
public string getname()
public void setname(string name)
}//發動機
class engine
public string getname()
public void setname(string name)
}//逃逸塔
class escapetower
public string getname()
public void setname(string name)
}
package com.example.shejimoshi.builder;
/** * 構建飛船的子元件 介面
*/public inte***ce airshipbuilder
package com.example.shejimoshi.builder;
/** * 實現了構建飛船的子元件
*/public class zhuairshipbuilder implements airshipbuilder
@override
public orbitalmodule builderorbitalmodule()
@override
public escapetower builderescapetower()
}
package com.example.shejimoshi.builder;
/** * 負責組裝飛船物件 介面
*/public inte***ce airshipdirector
package com.example.shejimoshi.builder;
/** * 實現飛船的裝配者
*/public class zhuairshipdirector implements airshipdirector
@override
public airship dictotairship()
}
測試:
package com.example.shejimoshi.builder;
public class test
}
設計模式(三)建造者模式
定義 建造者模式 builder 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。簡介 建造者模式 builder 是建立乙個複雜物件的建立型模式,將構建複雜物件的過程和它的部件解耦,使得構建過程和部件的表示分離開來。例如我們要diy乙個台式電腦電腦,我們找到diy商家,我...
設計模式(三)建造者模式(建立型)
定義 將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。使用場景 建立的產品有複雜的內部結構,且建立的產品有較多的共同點,其組成部分相似。隔離複雜物件的建立,使得相同的過程可以建立不同的產品。與抽象工廠的區別 在建造者模式裡,有個指導者,由指導者來管理創造者,使用者是與指導...
C 設計模式(三)建造著模式
class test public class test1 public void show public class test2 public test1 getitem public class director 電腦類 public class computer public void sho...