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读书笔记创建和销毁对象:考虑使用静态工厂方法代替构造器的主要内容,如果未能解决你的问题,请参考以下文章