第二章 创建和销毁对象
规则1 考虑以”static factory mehthods”取代构造函数
提供一个公共静态工厂方法返回一个类的实例
优势:
有名字, 不需要每次都建立一个新的实例, 可以复用对象, 还可以返回类型的子类
能够保证是单例类, 能够保证不会有两个相同的实例存在
没有构造函数的类不能被子类化.
不容易和其他静态方法区分开
常见的是valueof和getInstance方法
规则2 用私有构造函数构建单例模式
规则 3 用私有构造函数构造工具类避免被实例化
规则 4 避免创建重复对象
对象如果是不可变的总是可以被复用, String就是不可变对象, 为了避免创造重复对象而使用静态工厂方法, Boolean.valueOf(String)比构造函数Boolean(String)好, 构造函数需要每次都建立新的对象, 而静态工厂方法则不需要.
本规则中的两个例子很好, 但关于适配器中的两个例子没有看.
适配器对象用来提供可选择的接口给返回的对象, 因为适配器没有状态, 所以没有必要建立超过一个实例, 举的keySet的例子, map接口的keySet