• 第二条:遇到多个构造器参数时考虑使用构建器


    遇到需要多个参数(参数可分为必需参数和非必需参数)才能实例化一个类的对象时,一般有三种方法:

    1.重叠构造器

      重叠构造器的方式可行,但是当有许多参数的时候,客户端的代码会很难编写,而且很容器出错。

      方便期间,假设这个类有五个Field需要赋值:

    2.JavaBean式的类

      通过setter方法来为实例对象设置Field的值。

      但是通过javabean的方式来初始化一个实例,不是通过一条语句来完成的,会调用多个setter方法,这就会可能产生实例对象的不一致情况。

      另外,javabean式的类通过setter方法来为field赋值,而不是构造器,这样就不能将field设置为final,也就是不能将javabean式的类设计为不可变类,

      这样javabean式的类就不是线程安全的类,在使用时需要借助同步来保证线程安全。

    3.使用构建器

      使用构建器则保持了javabean式类的可读性,也可以将field设置为final。

      构建器其实就是想要 实例化类的一个内部类。通过先实例化这个内部类,为这个内部类的实例的field赋值,让后内部类的实例把自己的field值赋给想要

      实例化的那个外部类。

  • 相关阅读:
    Ducking
    MINITAB(二)
    JFreechart
    linux命令0424
    JAVA哈哈镜
    HTML(四)
    The 3n+1 problem
    [转载]:【读书笔记】.NET本质论
    ER图基本步骤
    [从架构到设计]第一回:设计,应该多一点(转载)
  • 原文地址:https://www.cnblogs.com/wangliyue/p/4422714.html
Copyright © 2020-2023  润新知