设计模式 _第五招式_建造者模式
生活随笔
收集整理的這篇文章主要介紹了
设计模式 _第五招式_建造者模式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、定義
建造者模式(Builder Pattern)叫做生成器模式,將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它表示分離,使得同樣的構(gòu)造過(guò)程可以創(chuàng)建不同的表示,可以按照部件屬性有序的創(chuàng)建對(duì)象。
二、代碼演示
建造者模式通用類(lèi)圖
- Product產(chǎn)品類(lèi)
通常是實(shí)現(xiàn)了模版方法模式,也就是有模版方法和基本方法。
public class Product {public void doSomething(){//獨(dú)立業(yè)務(wù)邏輯} }- Builder抽象建造者
規(guī)范產(chǎn)品的組建,一般是由子類(lèi)實(shí)現(xiàn)。
public abstract class Builder {//設(shè)置產(chǎn)品的不同部分,已獲得不同的產(chǎn)品public abstract void setPart();//構(gòu)造產(chǎn)品public abstract Product buildProduct(); }- ConcreteBuilder具體建造者
實(shí)現(xiàn)抽象類(lèi)定義的所有方法,并且返回一組構(gòu)建好的對(duì)象。
public class ConcreteProduct extends Builder {Product product = new Product();//設(shè)置產(chǎn)品零件public void setPart(){//產(chǎn)品類(lèi)內(nèi)的邏輯處理}//組建一個(gè)產(chǎn)品public Product buildProduct(){return product ;} }- Director導(dǎo)演類(lèi)
負(fù)責(zé)安排已有的模塊的順序,然后告訴Builder開(kāi)始構(gòu)造
public class Director {private Builder builder = new ConcreteProduct();//構(gòu)建不同的產(chǎn)品public Product getAProduct(){builder.setPart();return builder.buildProduct();} }三、優(yōu)點(diǎn)
- 封裝性
使用建造者模式可以使客戶(hù)端不必知道產(chǎn)品內(nèi)部組成的細(xì)節(jié)。 - 建造者獨(dú)立,容易擴(kuò)展
每個(gè)建造者相互獨(dú)立,很好擴(kuò)展。 - 便于控制細(xì)節(jié)風(fēng)險(xiǎn)
由于具體的建造者是獨(dú)立的,因此可以對(duì)建造者過(guò)程逐步細(xì)化,而不會(huì)對(duì)其它模塊產(chǎn)生影響。
四、缺點(diǎn)
五、應(yīng)用場(chǎng)景
- 相同的方法,不同的執(zhí)行順序,產(chǎn)生不同的事件結(jié)果。
- 多個(gè)部件或零件,都可以封裝到一個(gè)對(duì)象中,但是產(chǎn)生的運(yùn)行結(jié)果又不相同,則可以采用該模式。
- 產(chǎn)品類(lèi)非常復(fù)雜,或者產(chǎn)品類(lèi)中調(diào)用的順序不同,產(chǎn)生的結(jié)果不同,這非常時(shí)候建造者模式。
六、注意事項(xiàng)
- 建造者模式關(guān)注的是零件類(lèi)型和裝配工藝(順序),這是它與工廠方法模式最大的不同地方,雖然都是創(chuàng)建類(lèi),但是注重點(diǎn)不同。
- 建造者模式常常需要和模版方法模式結(jié)合使用。
總結(jié)
以上是生活随笔為你收集整理的设计模式 _第五招式_建造者模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《剑指Offer》51. 二叉搜索树的第
- 下一篇: 计算机未来设计建筑,未来设计的趋势解析,