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();
    }
    
}
相关文章
相关标签/搜索