水晶 - 类破坏的方法
问题描述:
是否有一个类方法在被销毁时被调用?水晶 - 类破坏的方法
当在一个班上使用new
时,initialize
方法被调用,是否有destroy
等效?
当我不再使用类时,我需要确保正确关闭数据库(程序在数据库关闭后保持运行)。
答
有Object#finalize,但是这样的析构函数通常只应用于低级抽象,如从C库中释放资源。对于普通的应用程序或库代码,我认为这是一种代码味道,通常有更好的解决方案。
如果数据库连接仅用于特定的交互,则最好手动打开和关闭(可能包装在一个块中)连接,而不是依赖GC析构函数挂钩。