建造者模式

     当一个对象非常复杂,为了区分构建过程和使用过程,使用一个Director类进行对象的构建,Builder规定了这个构建过程。

模式结构:


     Builder:抽象建造者接口,规范各个组成部分的构建。
     ConcreateBuilder:具体的建造者角色,实现组成部分的构建,并提供示例(getResult()方法)。
     Product:产品角色,创建返回的对象。
     Director:引导者角色。负责组装(构建)。

使用场景:
     ①、当创建对象复杂并且与其使用过程独立。
     ②、构造过程允许构造的对象有不同的标识。

创建一只狗的示例:

Builder:

public abstract class IBuilder {
      abstract void buildHead();
      abstract void buildBody();
      abstract Dog getResult();
}

ConcreateBuilder:

public class DogBuilder extends IBuilder{

      Dog d = new Dog();
      @Override
      void buildHead() {
            // TODO Auto-generated method stub
            d.add("head");
      }

      @Override
      void buildBody() {
            // TODO Auto-generated method stub
            d.add("body");
      }

      @Override
      Dog getResult() {
            return d;
      }

}

Product:

public class Dog {
      StringBuilder entity = new StringBuilder();

      public Dog(){}

      public void add(String part){
            entity.append(part);
      }
}

Director:

public class Director {
      IBuilder builder = null;

      public Director(IBuilder builder){
            this.builder = builder;
      }

      public void construct(){
            builder.buildBody();
            builder.buildHead();
      }
}
     
     就类似要建造一栋房子,由工人(Builder)进行建造,由工头(Director)指挥建造,最终由建造者工人提交成品。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值