全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java Builder Pattern建造者模式详解及实例

Java Builder Pattern

1.概念

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

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

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

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

2.UML图

3.代码

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

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

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

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


  public interface Product { }
  public interface Part { }

    下面是调用builder的方法:

  ConcreteBuilder builder = new ConcreteBuilder();
  Director director = new Director( builder ); 
  
  director.construct(); 
  Product product = builder.getResult();

4.应用场景

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java  # Builder  # Pattern建造者模式  # Pattern详解  # 建造者模式  # java设计模式--建造者模式详解  # java实现建造者模式(Builder Pattern)  # Java运用设计模式中的建造者模式构建项目的实例解析  # Java设计模式之建造者模式实例详解  # java开发建造者模式验证实例详解  # 的人  # 很好  # 有个  # 有很多  # 也很  # 希望能  # 只需要  # 谢谢大家  # 如何将  # 举个  # 在内部  # 远不止  # 调用者  # UML 


相关文章: 官网自助建站平台指南:在线制作、快速建站与模板选择全解析  全景视频制作网站有哪些,全景图怎么做成网页?  建站主机与虚拟主机有何区别?如何选择最优方案?  高端建站三要素:定制模板、企业官网与响应式设计优化  南宁网站建设制作定制,南宁网站建设可以定制吗?  常州自助建站费用包含哪些项目?  如何快速配置高效服务器建站软件?  制作网站公司那家好,网络公司是做什么的?  建站之星展会模版如何一键下载生成?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  ,如何利用word制作宣传手册?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  建站上传速度慢?如何优化加速网站加载效率?  如何快速建站并高效导出源代码?  c++ stringstream用法详解_c++字符串与数字转换利器  股票网站制作软件,网上股票怎么开户?  如何选购建站域名与空间?自助平台全解析  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  建站10G流量真的够用吗?如何应对访问高峰?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何在香港免费服务器上快速搭建网站?  招商网站制作流程,网站招商广告语?  如何高效配置IIS服务器搭建网站?  设计网站制作公司有哪些,制作网页教程?  如何规划企业建站流程的关键步骤?  如何在自有机房高效搭建专业网站?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  创业网站制作流程,创业网站可靠吗?  建站之星Pro快速搭建教程:模板选择与功能配置指南  Python路径拼接规范_跨平台处理说明【指导】  如何用景安虚拟主机手机版绑定域名建站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何用美橙互联一键搭建多站合一网站?  模具网站制作流程,如何找模具客户?  如何零基础在云服务器搭建WordPress站点?  移民网站制作流程,怎么看加拿大移民官网?  广平建站公司哪家专业可靠?如何选择?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何在阿里云ECS服务器部署织梦CMS网站?  如何正确下载安装西数主机建站助手?  如何用低价快速搭建高质量网站?  微信小程序 input输入框控件详解及实例(多种示例)  婚礼视频制作网站,学习*后期制作的网站有哪些?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何在IIS中新建站点并解决端口绑定冲突?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  建站之星安装后如何配置SEO及设计样式?  已有域名能否直接搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。