加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Java之建造者模式(Builder Pattern)

发布时间:2020-12-13 21:19:38 所属栏目:PHP教程 来源:网络整理
导读:1.概念 将1个复杂的构建与其表示相分离,使得一样的构建进程可以创建不同的表示。 [构建与表示分离,同构建不同表示] 与抽象工厂的区分:在建造者模式里,有个指点者,由指点者来管理建造者,用户是与指点者联系的,指点者联系建造者最后得到产品。即建造模

1.概念

    将1个复杂的构建与其表示相分离,使得一样的构建进程可以创建不同的表示。 [构建与表示分离,同构建不同表示]

    与抽象工厂的区分:在建造者模式里,有个指点者,由指点者来管理建造者,用户是与指点者联系的,指点者联系建造者最后得到产品。即建造模式可以强迫实行1种分步骤进行的建造进程。

  建造模式是将复杂的内部创建封装在内部,对外部调用的人来讲,只需要传入建造者和建造工具,对内部是如何建造成成品的,调用者无需关心。

  举个简单的例子,如汽车,有很多部件,车轮,方向盘,发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配成1部汽车,这个装配进程也很复杂(需要很好的组装技术), builder模式就是为了将部件和组装分开。

2.UML图

3.代码

复制代码

    public interface Builder { 
    void buildPartA(); 
    void buildPartB(); 
    void buildPartC(); 
  
    Product getResult(); 
  } 

   //具体建造工具
  class ConcreteBuilder implements Builder { 
    Part partA,partB,partC; 

    void buildPartA() {
      //这里是具体如何构建partA的代码
    }; 
    void buildPartB() { 
      这里是具体如何构建partB的代码
    }; 
     void buildPartC() { 
      public Product getResult() { 
      返回最后组装成品结果
    }; 
  }

   //建造者
  class Director {
    private Builder builder; 
  
    public Director( Builder builder ) { 
      this.builder = builder; 
    } 
    void construct() { 
      builder.buildPartA();
      builder.buildPartB();
      builder.buildPartC(); 
    } 
  } 


  interface Product { }
  interface Part { }
  

复制代码

    下面是调用builder的方法:
  ConcreteBuilder builder = new ConcreteBuilder();
  Director director = new Director( builder ); 
  
  director.construct(); 
  Product product = builder.getResult();

4.利用场景

在Java的利用中JavaMail使用到了该模式。

学习Java的同学注意了!!! 
学习进程中遇到甚么问题或想获得学习资源的话,欢迎加入Java学习交换群,群号码:183993990  我们1起学Java!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读