终结器是不可预测的、常常会很危险,⽽且通常没必要。使⽤终结器会导致奇怪的⾏为、孱弱的性能以及可移植性问题。终结器存在⼀些使⽤场景,稍后就会介绍,...
规范不仅没有提供终结器或是清理器会⽴刻运⾏的保证,也没有对其⼀定会运⾏提供任何保证。完全有可能出现这样的情况,当程序终⽌时,它并没有对早就处于不...
条款7:消除废弃的对象引用(二) 当程序员初次遇到这个问题时,他们会采取矫枉过正的措施:当程序使⽤完对象后,会将每个对象引⽤都设为null。这么...
条款7:消除废弃的对象引用(一) 如果你从⼀⻔需要⼿动进⾏内存管理的语⾔(如C或是C++)转到了垃圾回收语⾔(如Java),那么作为程序员来说,...
条款6:避免创建不必要的对象(二) 如果包含了改进版本isRomanNumeral⽅法的类被初始化了,但该⽅法却永远没有被调⽤,那么字段ROMA...
条款6:避免创建不必要的对象(一) 在需要⼀个对象时,恰当的做法是尽可能重⽤这个对象⽽⾮创建⼀个功能完全⼀样的新对象。重⽤既快⼜时髦。如果对象是...
第八章 抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的...
第七章 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种...
条款5:优先选择依赖注⼊⽽非硬编码资源的关联关系 很多类都会依赖于⼀个或多个底层资源。⽐如说,拼写检查器会依赖于字典。我们常常会看到这种类被实现...