java建造者模式

建造者設計模式

     建造者模式(又稱生成器模式)將一個複雜對象的構建過程和它的表示分離,從而使一樣的構建過程,能夠生成不一樣的表示。建造者模式將一個複雜對象的構建過程分紅一個個簡單的步驟,用戶只須要了解對象的類型和內容,無須關注複雜對象的構建過程,幫助用戶屏蔽掉內部具體的構建細節。建造者模式的結構圖以下:java

建造者模式主要角色以下:

    建造者接口(Builder):Builder接口主要用來定義建造者構建產品對象的各部分的行爲設計模式

    具體建造者(ConcreteBuilder):具體建造者是用來直接建立產品對象的,具體建造者要實現兩類方法,一類是建造方法,例如:buildPart1()、buildPart2(),另外一類是獲取建造好的產品對象的方法ide

    導演(Director):導演經過調用具體建造者來建立須要的產品對象ui

    產品(Product):產品是用戶須要的複雜對象this

建造者模式和工廠模式的區別:

    工廠模式通常都是建立一個產品對象,只須要將產品對象建立出來,不關心產品對象的組成細節和組成過程。spa

    建造者模式也是建立一個產品對象,不一樣的是建造者模式不只要將產品對象建立出來,還要關心產品對象的組成細節和組成過程。設計

package com.hs.pattern.builder;

public class Product {

}

 

package com.hs.pattern.builder;

public interface Builder {

    void buildPart1();
    
    void buildPart2();
    
    Product getProduct();
}

 

package com.hs.pattern.builder;

public class ConcreteBuilder implements Builder {

    private Product product;
    
    @Override
    public void buildPart1() {
        // TODO Auto-generated method stub

    }

    @Override
    public void buildPart2() {
        // TODO Auto-generated method stub

    }

    @Override
    public Product getProduct() {
        // TODO Auto-generated method stub
        return product;
    }

}

 

package com.hs.pattern.builder;

public class Director {

    private Builder builder;
    
    public Director( Builder builder ){
        this.builder = builder;
    }
    
    public Product builder(){
        builder.buildPart1();
        builder.buildPart2();
        return builder.getProduct();
    }
    
}
相關文章
相關標籤/搜索