创建和销毁对象

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

1.有名字 便于维护代码

2.可以返回同一个对象 减缓了内存开销

    如singleton 使用enum可以保证这一点

3.可以返回子类型 可以返回非公有 不可实例化的 等等 如EnumSet的公有静态方法

4.静态方法返回的类 在编写时静态工厂方法时不存在 (SPI Service Provider Interface)

5.静态方法在创建参数化类型实例的时候 是代码更简洁

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

1.如果使用有参构造 会对后续的维护造成一些麻烦 如你使用全参构造 后续你却添加了一个参数

用私有构造器或者枚举类型强化Singleton属性

恶汉式创建 singleton 仍然可以通过AccessibleObject.setAccessible方法来实例化对象 可以在对象的构造方法里面 抛出异常

懒汉式创建 会有线程安全问题

枚举创建 最为推荐的方式

通过私有构造器强化不可实例化的能力 

如一些工具类 DateUtils StringUtils 

避免创建不必要的对象

如构建公共常量 STRING COLLECTIONS

消除过期的对象引用

避免使用终结方法

你可能感兴趣的:(创建和销毁对象)