【问题标题】:Crystal - method on class destructionCrystal - 类销毁方法
【发布时间】:2017-10-15 16:20:25
【问题描述】:

有没有销毁时调用的类方法?

在一个类上使用new时,会调用initialize方法,有没有destroy等价的?
当不再使用该类时,我需要确保正确关闭数据库(关闭数据库后程序继续运行)。

【问题讨论】:

    标签: database destroy crystal-lang


    【解决方案1】:

    有Object#finalize,但是这种析构函数通常只需要用于低级抽象,例如从 C 库中释放资源。对于普通的应用程序或库代码,我认为这是一种代码异味,通常有更好的解决方案。

    如果数据库连接只用于特定的交互,最好手动打开和关闭(可能包装在一个块中)连接,而不是依赖 GC 析构函数挂钩。

    【讨论】:

      猜你喜欢
      • 2015-03-10
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多