据我所知,这些是单例类在Java和Ruby中的使用方式
总而言之,ruby中的单例类与java中的单例类相同,除了保存自定义方法的工具。我理解得对,还是我错过了什么?
答案 0 :(得分:3)
你在技术上是正确的,但我认为你没有提到的是一个很大的区别。
在Java中,单例类是实现的东西。换句话说,它是design pattern,通常仅在特定情况下使用(请参阅示例链接)。单例模式也被广泛认为是一个坏主意,因此在Java中最好避免使用单例类。
在Ruby中,单例类对每个Object都是隐式。它始终存在,但仅在程序员想要在每个实例的基础上进行类级别更改(如添加方法)时使用。它类似于Java case only ,因为它只能有一个实例。 Ruby中的Singleton类非常方便,与元编程一起使用时非常强大。
当然你也可以在Ruby中实现单例模式,但是当Rubyist说“单例类”时,它们总是指每个Object的隐含祖先。