3

据我所知,这些是 Java 和 Ruby 中如何使用单例类

  • 在 Java 中,单例类是只能存在一个实例的类。
  • 在 Ruby 中,单例类是充当对象与其原始类之间的缓冲区的类,以保存该特定对象的自定义方法(单例方法)(这通过扩展意味着单例类在最大)

总而言之,ruby 中的单例类与 java 中的单例类相同,只是可以保存自定义方法。我理解正确还是我在这里遗漏了什么?

4

1 回答 1

3

你在技术上是正确的,但我认为你没有提到一个很大的区别。

在 Java 中,单例类是您实现的东西。换句话说,它是一种通常只在特定情况下使用的设计模式(参见示例链接)。单例模式也被广泛认为是一个坏主意,因此在 Java 中最好避免使用单例类。

在 Ruby 中,单例类对每个对象都是隐含的。它始终存在,但仅在程序员想要在每个实例的基础上进行类级别的更改时使用(例如添加方法)。它与 Java 案例的相似之处在于它只能有一个实例。Ruby 中的单例类非常方便,并且在与元编程一起使用时非常强大。

当然你也可以在 Ruby 中实现单例模式,但是当 Ruby 专家说“单例类”时,他们总是指每个 Object 的隐式祖先。

于 2013-10-30T14:27:43.947 回答