欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

輕松掌握J(rèn)ava建造者模式

 更新時間:2016年10月10日 11:32:03   作者:斷了聯(lián)系  
這篇文章主要幫助大家輕松掌握J(rèn)ava建造者模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

建造者模式針對的是復(fù)雜對象的構(gòu)建,比如一個產(chǎn)品有多個部分構(gòu)成,每個部分都可以單獨(dú)進(jìn)行生產(chǎn),這時候就可以用建造者模式,由Builder構(gòu)造產(chǎn)品的每個部分,然后又director完成最后產(chǎn)品的組裝。

特點(diǎn):

    1、分工更加明確,組建和構(gòu)造分開,能更好的控制產(chǎn)品的生產(chǎn)。

    2、容易擴(kuò)展,有新的需求的時候,只要實(shí)現(xiàn)Builder借口就可以了。

企業(yè)級開發(fā)和常用框架中的應(yīng)用:JMail

組成:產(chǎn)品類,抽象建造者,建造者,導(dǎo)演。

產(chǎn)品類:

public class Product{
 private String partA;//產(chǎn)品的某個部分,實(shí)際開發(fā)中可能對應(yīng)一個類 
 private String partB;//產(chǎn)品的某個部分,實(shí)際開發(fā)中可能對應(yīng)一個類 
 private String partC;//產(chǎn)品的某個部分,實(shí)際開發(fā)中可能對應(yīng)一個類 
 //構(gòu)造器及set、get方法
}

抽象建造者:

//也可以是抽象類
public interface Builder{ 
 public void setPartA(String partA); 
 public void setPartB(String partB); 
 public void setPartC(String partC);
}

建造者實(shí)現(xiàn)類:

public class BuilderImpl implements Builder{
 
 private Product product;
 
 public BuilderImpl(){
 product = new Product();
 }
 
 public void builderPartA(){
 String partA = new String();//模擬工廠方法生產(chǎn)產(chǎn)品的某一個部分
 product.setPartA(partA);
 }
 
 public void builderPartB(){
 String partB = new String();//模擬工廠方法生產(chǎn)產(chǎn)品的某一個部分
 product.setPartB(partB);
 }
 
 public void setPartC(){
 String partC = new String();//模擬工廠方法生產(chǎn)產(chǎn)品的某一個部分
 product.setPartC(partC);
 }
 
 public Product getProduct(){
 return this.product;
 }
}

導(dǎo)演類:

public class Director{
 private Builder b ;
 
 public Director(Builder newB){
 this.b = newB;
 }
 
 public void createBuilder(Builder b){
 this.b = b;
 }
 
 public Product constructProduct(){
 b.builderPartA();
 b.builderPartB();
 b.builderPartC();
 }
}

測試類:

public class Demo{
 public static void main(String[] args){
 Builder b = new BuilderImpl();
 Director d = new Director();
 d.createBuilder(b);
 Product p = c.constructProduct();
 }
}

從上面的例子中我們不難發(fā)現(xiàn),如果我們另外實(shí)現(xiàn)導(dǎo)演類,完全可能組裝出另一個不同的產(chǎn)品,因?yàn)閷?dǎo)演類控制了產(chǎn)品的組裝,同樣的,如果我們重新實(shí)現(xiàn)抽象構(gòu)建類,也可能出現(xiàn)完全不同的產(chǎn)品,所以,從中可以發(fā)現(xiàn),構(gòu)建者模式更加的抽象化,流程化。

相比于抽象工廠模式,不難發(fā)現(xiàn)這兩者驚人的相似,但為什么還會分出兩種不同的設(shè)計模式呢,其實(shí)重點(diǎn)就在產(chǎn)品的復(fù)雜程度和抽象程度上,建造者模式比抽象工廠模式更加的抽象化,復(fù)雜化,也就是說建造者模式應(yīng)對的產(chǎn)品比抽象工廠應(yīng)對的產(chǎn)品更加復(fù)雜,同時,在產(chǎn)品生產(chǎn)流程長更加的抽象。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論