在 Ruby 中,我有一个 DAO 类,该类由一个使管理连接更容易的类扩展,该类由一个表示和操作数据库中数据的类扩展,该类由另一个类进一步扩展。要使用动物比喻,它看起来像这样:
class Animal
...
end
class Mammal < Animal
...
end
class Feline < Mammal
...
end
class Cat < Feline
...
end
class Lion < Cat
...
end
...
在 PHP 中,__destruct
当您销毁/删除一个类时会运行一个方法。如果该类扩展另一个类,您只需像这样添加parent::__destruct()
到该类的__destruct
方法中:
public function __destruct() {
// Clean up code for this class here
...
// Execute clean up code for Parent class
parent::__destruct();
}
我可以对除Animal
. 由于它没有扩展任何内容,因此该parent::__destruct();
行不再有效。
但是,据我了解,Ruby 的对象没有这样的方法。可以设置终结器,但我决定只放入一个cleanup
我可以在想要销毁/删除类时调用的方法。在我将课程设置为nil
.
然而,这提出了一个新问题。如果方法总是被命名cleanup
并且我调用lion_instance.cleanup
了 ,我假设它调用了Lion#cleanup
. 那么如何让它cleanup
在课堂上调用Cat
,然后Feline
在链上调用呢?
或者这是一个错误的方法,你有一个更好的主意?