创建和销毁对象
第1条:用静态工厂方法代替构造器
第2条:遇到多个构造器参数时要考虑使用构建器
建造者模式
第3条:用私有构造器或者枚举类型强化 Singleton 属性
三种实现单例的方法,注意防止使用反射,可以修改构造器,让它在被要求创建第二个实例的时候抛出异常。
最佳方式是枚举实现。
第4条:通过私有构造器强化不可实例化的能力
第5条:优先考虑依赖注入来引用资源
不要用 Singleton 和静态工具类来实现依赖一个或多个底层资源的类,且该资源的行为会影响到该类的行为 ;也不要直接用这个类来创建这些资源 而应该将这些资源或者工厂传给构造器(或者静态工厂,或者构建器),通过它们来创建类 这个实践就被称作依赖注入,它极大地提升了类的灵活性、可重用性和可测试性。
第6条:避免创建不必要的对象
例子:Map接口的keySet方法、自动拆装箱
第7条:消除过期的对象引用
例子:栈实现(栈自己管理内存)、缓存、监听器和其他回调
第8条:避免使用终结方法和清楚方法
缺点:1.不能保证被及时执行,而且根本就不能保证会被执行。
因为是由JVM管理的,优先级比较低。JVM平台不同,实现可能不同。注重时间的任务不应该由终