Effective Java读书笔记创建和销毁对象:考虑使用静态工厂方法代替构造器

Posted zoujiejun96

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Effective Java读书笔记创建和销毁对象:考虑使用静态工厂方法代替构造器相关的知识,希望对你有一定的参考价值。

类可以提供一个静态方法,返回类的一个静态实例,如Boolean包装类的一个获取实例的静态方法

1 public static Boolean valueOf(boolean b) {
2        return (b ? TRUE : FALSE);
3    }

   优势:

   1、有名称。当一个类需要多个带有相同签名的构造器时,就用静态工厂方法代替构造器,并慎重选择名称以突出它们之间的区别。 如:BigInteger.probablePrime(int bitLength, Random rnd) 返回一个随机的素数。

   2、不必在每次调用它们的时候都创建一个新对象。

   3、可以返回其子类,在选择返回对象的类时有了更大的灵活性。

   4、简化代码。

   缺点:

   1、整个类如果没有public 或 protected类型的构造器,则它将不能被继承,即不能作为超类,相当于final。

   2、与其他静态方法在api文档中没有区别,不像构造器在api中可以标识出来

静态工厂方法惯用名称:

  •     valueOf —— 返回的实例与其参数具有相同的值,实际上是一种类型转换方法
  •     of —— valueOf简洁的替代,EnumSet中有使用
  •     getInstance
  •     newInstance ——同getInstance,保证每个返回的实例都与其他实例不同
  •     getType —— Type表示工厂方法所返回的对象类型
  •     newType

以上是关于Effective Java读书笔记创建和销毁对象:考虑使用静态工厂方法代替构造器的主要内容,如果未能解决你的问题,请参考以下文章

Effective Java2读书笔记-创建和销毁对象

Effective Java2读书笔记-创建和销毁对象

读书笔记《Effective Java》——创建和销毁对象

Effective Java 读书笔记之一 创建和销毁对象

Effective java 第二章创建和销毁对象 读书笔记

Effective Java读书笔记创建和销毁对象:考虑使用静态工厂方法代替构造器