《Effective》

About 1 minbook

第一章 创建和销毁对象

1.1 用静态工厂方法代替构造器

BigInteger prime = BigInteger.valueof(Integer.MAX_VALUE);

优点:

  1. 静态工厂方法有名称
  2. 不用每次调用都new新的类
  3. 可以返回子类型对象
  4. 可以用参数控制返回不同的类
  5. 可以编写返回一个不存在的类

缺点:

  1. 不容易查明类是如何被实例化的
  2. 如果没有共有或受保护的构造器就不能被子类化

1.2 遇到多个构造器参数时要考虑使用构建器

优点:

多参数构造器的客户端代码很难阅读和编写

get/set方式赋值让类不可变变得不复存在

Builder模式适用于类层次结构

Builder模拟了具名的可选参数

缺点:

必须先创建构造器,在某些十分注重性能的情况下可能会有问题

比重叠构造器模式更冗长

Last update:
Contributors: gaoqisen