设计模式学习与实践(七)----建造模式(builder)

1.1.1        描述

l         正规描述

将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。

l         形象描述

当前好多企业应用软件系统都是需要定制的,每一个企业应用软件系统包含有多个部分,客户并不需要关心这些模块是如何组成一个软件系统,而只需要告知系统设计人员他们的需求就可以了,由设计人员(Director)和开发人员(builder)来构建(construct)出满足需求的产品。

1.1.2        类图&示意代码

public class Product(){

public void productMethod(){

    System.out.println(“This is product”);

}

}

 

public abstract class Builder(){

public abstract void buildPart1();

public abstract void buildPart2();

public abstract Product retrieveProduct();

}

 

public class ConcreteBuilder extends Builder(){

private Product p = new Product();

 

public void buildPart1(){

    //to do

}

 

public void buildPart2(){

    //to do

}

 

public Product retrieveProduct(){

    //to do

return p;

}

}

 

public class Director(){

private Builder b = null;

 

public void construct(){

    if(b = null){

        b = new ConcreteBuilder();

    }

    b.buildPart1();

    b.buildPart2();

}

 

public void setBuilder(Builder builder){

    this.b = builder;

}

 

public Builder getBuilder(){

    return b;

}

}

 

public class Client(){

public void main(String args[]){

    Director d = new Director();

    Builder b = new ConcreteBuilder();

    d.setBuilder(b);

    d.construct();

    Product p = b.retrieveProduct();

    p.productMethod();

}

}

注:

       1、这是普通的形式,还有好多变种

1.1.3        举例

1.1.4        比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值