最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Java设计中的Builder模式的介绍

来源:动视网 责编:小采 时间:2020-11-27 19:45:23
文档

Java设计中的Builder模式的介绍

Java设计中的Builder模式的介绍:这篇文章主要介绍了从一个Person例子进行分析重叠构造器模式、Builder模式的使用场景以及运用JavaBeans模式弥补重叠构造器模式的不足概述Builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景相同的方法,不同
推荐度:
导读Java设计中的Builder模式的介绍:这篇文章主要介绍了从一个Person例子进行分析重叠构造器模式、Builder模式的使用场景以及运用JavaBeans模式弥补重叠构造器模式的不足概述Builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景相同的方法,不同


这篇文章主要介绍了从一个Person例子进行分析重叠构造器模式、Builder模式的使用场景以及运用JavaBeans模式弥补重叠构造器模式的不足

概述

Builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

使用场景

  • 相同的方法,不同的执行顺序,产生不同的事件结果

  • 多个部件或零件,都可以装配到一个对象中,但产生的运行结果又不相同时

  • 产品类非常复杂,或者产品类中的调用顺序不同产生不同的作用

  • 当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时

  • 下面从一个Person例子进行分析重叠构造器模式、JavaBeans模式、Builder模式的使用。Person类有两个必要参数(id和name),有5个可选参数(age,sex,phone,address和desc)

    重叠构造器模式

    在这种模式下,你提供第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个有两个可选参数,依此类推,最后一个构造器包含所有的可选参数。下面看看其编程实现:

    从上面的代码中,当你想要创建实例的时候,就利用参数列表最短的构造器,但该列表中包含了要设置的所有参数:

    重叠构造器可行,但是当有许多参数的时候,创建使用代码会很难写,并且较难以阅读

    JavaBeans模式

    采用Javabean 的写法,写一堆属性的setter方法,通过生成对象,让后调用setter方法给属性赋值。

    这种模式弥补了重叠构造器模式的不足。创建实例很容易,这样产生的代码读起来也很容易:

    JavaBeans模式因为构造过程被分到了几个调用中,在构造过程中JavaBean可能处于不一致的状态。类无法仅仅通过检验构造器参数的有效性来保证一致性。

    Builder模式

    Builder模式既能保证像重叠构造器那样的安全,也能实现JavaBean模式那样的可读性。

    Person是不可变得,所有的默认参数值都单独放在一个地方。builder的setter方法返回builder本身,以便可以链式调用。下面是客户端使用代码:

    Person person = new Person.Builder(1, "张三")
    .age(18).sex("男").desc("测试使用builder模式").build();

    Android源码中的Builder模式

  • AlertDialog源码

  • Universal-Image-Loader图片库

  • OkHttp的Request源码

  • 优点:

  • 良好的封装性,使用建造者模式可以使客户端不比知道产品内部组成的细节

  • 建造者独立,容易扩展(可通过抽象———接口,抽象类)

  • 缺点:

  • 会产生多余的Builder对象以及Director对象,消耗内存

  • 总结 :Builder模式通常作为配置类的构建器将配置的构建和表示分离开来,同时也是将配置从目标类中隔离出来,避免过多的setter方法。

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    IE8用ajax访问不能每次都刷新的问题

    IE8/IE9下Ajax缓存问题

    IE8下Ajax缓存问题及解决办法

    文档

    Java设计中的Builder模式的介绍

    Java设计中的Builder模式的介绍:这篇文章主要介绍了从一个Person例子进行分析重叠构造器模式、Builder模式的使用场景以及运用JavaBeans模式弥补重叠构造器模式的不足概述Builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景相同的方法,不同
    推荐度:
    标签: 模式 介绍 java
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top