場景:我們要建造乙個複雜的產品。比如:飛船。這個複雜的產品的建立,有這樣乙個問題需要處理。
實際開發中,我們所需要的物件構建時,也非常的複雜,有很多步驟需要處理。
分離了物件子元件的單獨構建(由builder來負責)和裝配(由director負責)。從而可以構建出複雜的物件,這個模式適用於:某個物件的構建過程複雜的情況下使用。
由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以做出不同的物件。相同的構建器,不同的裝配順序也可以做出不同的物件。也就是實現了構建演算法、裝配演算法的解耦,實現了更好的復用。
飛船配件類
package com.kevin.建立型模式.建造者模式;
/** * @author kevin
* @version 1.0
* @description 宇宙飛船
* @createdate 2019/2/17
*/public class airship
public orbitalmodule getorbitalmodule()
public void setorbitalmodule(orbitalmodule orbitalmodule)
public engine getengine()
public void setengine(engine engine)
public escapetower getescapetower()
public void setescapetower(escapetower escapetower)
}//軌道艙
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.kevin.建立型模式.建造者模式;
/** * @author kevin
* @version 1.0
* @description 構建類
* @createdate 2019/2/17
*/public inte***ce airshipbuilder
裝配飛船的類
package com.kevin.建立型模式.建造者模式;
/** * @author kevin
* @version 1.0
* @description 裝配類
* @createdate 2019/2/17
*/public inte***ce airshipdirector
有個實際產品裝配類,比如太空飛船裝配類
package com.kevin.建立型模式.建造者模式;
/** * @author kevin
* @version 1.0
* @description 太空飛船裝配類
* @createdate 2019/2/17
*/public class spaceairshipdirector implements airshipdirector
@override
public airship directorairship()
}
太空飛船構建類
package com.kevin.建立型模式.建造者模式;
/** * @author kevin
* @version 1.0
* @description 太空飛船構建類
* @createdate 2019/2/17
*/public class spaceairshipbuilder implements airshipbuilder
@override
public orbitalmodule builderorbitalmodule()
@override
public escapetower builderescapetower()
}
測試建造者模式
package com.kevin.建立型模式.建造者模式;
/** * @author kevin
* @version 1.0
* @description 測試建造者模式
* @createdate 2019/2/17
*/public abstract class test extends airship implements airshipdirector, airshipbuilder
}
uml類圖
sql中preparedstatement
jdom中,dombuilder、saxbuilder
23種設計模式(建造者模式)
願歲月清淨 產品,房子 public class product public void setbuildera string buildera public string getbuilderb public void setbuilderb string builderb public stri...
23種設計模式 建造者模式
需要建立乙個複雜物件的時候,這個物件通過一定的步驟組合而成,並且步驟一步都不能少。玩家 客戶 告訴拳頭 指揮者 我想要乙個什麼樣的英雄,拳頭告訴手下的程式設計師去做乙個這樣的英雄,程式設計師去屬性庫 抽象建造屬性類 中找,符合這樣英雄的抽象屬性,然後具體去設計這個英雄的各種屬性。通過建構函式,讓客戶...
java23種設計模式之建造者模式
上一節說到抽象工廠模式 所謂的抽象工廠模式,就是在同乙個工廠中可以生產出同一種型別或者同一系列的多種產品。今天說說工廠模式中另一種型別 建造者模式 顧名思義,建造者模式是想構建出乙個針對於某種或者一些產品的建造者,通過這個建造者來完成這種產品的從開始到結束的全部生產過程,最後得到成品。比如,前面我們...