创建和销毁对象

2017-12-29  本文已影响0人  李军_6eaa

相比于构造函数,考虑使用静态工厂方法

如果自己写的类,希望客户端能创建它的实例,一般自己要提供哪些方式?
公有静态工厂方法有什么优点?
公有静态工厂方法有什么缺点?
公有静态工厂方法惯用命名有哪些?

当面对多个构造函数参数时,考虑使用Builder模式

静态工厂和构造函数的缺点有哪些?
JavaBeans模式的缺点有哪些?
Builder模式解决了静态工厂和构造函数,以及JavaBeans的缺点,但它自身有哪些缺点?

利用私有构造函数和枚举,以加强单例特性

解释单例
怎么实现单例?
利用公有的static final域或static工厂方法实现单例的缺点有哪些?
针对上一条的缺点和问题,有哪些解决办法?
private Object readResolve() {
  return INSTANCE;
}
除了上述的解决办法,有没有更简单的办法?

利用私有构造函数,使类不能被实例化

你写了个工具类,不希望该类被人实例化,有什么办法?
throw new AssertionError();

不要硬编码resources,而是要选择dependency injection


为了避免创建不必要的对象,有哪些建议?

Boolean.valueOf(String) 而不是 Boolean(String)

消除无用的对象引用,有哪些建议?


为什么不要用finalizers and cleaners,不要用System.gc和System.runFinalization?


相对try-finally,为什么优先使用try-with-resources



上一篇 下一篇

猜你喜欢

热点阅读