Ruby 如何理解 singleton class

u1373433035 · 2013年08月12日 · 最后由 u1373433035 回复于 2013年08月13日 · 5238 次阅读

我的理解是,singleton class 提供了一个扩展(注入)某个实例对象的方法的机制,扩展的方法只在这个实例中存在。跟 include 的区别是,include 用于扩展 类的方法,对所有该类对象都有效。 这样理解对吗? 另外,为什么要设计这样一个机制?貌似其他语言中没见过

singleton 大部分 OO 语言都有的吧

singleton 类就是类,区别就是他只有一个实例

原因是 ruby 的 method 必有接收者

#2 楼 @jjym singleton class 就是你自己,object 就是别人眼中的你

#4 楼 @bhuztez 这个解释太有个性了..

汗 这个跟单例模式不是一回事吧。。

使用 singleton 的意义在于某些时候某个类创建多个实例是没意义的,本来就应该只存在一个实例。例如 NilClass,只有一个 nil,表示空无一物,多个 NilClass 实例没有意义 singleton 是一种设计模式,在所有直接支持 OO 的语言中都可以实现出来

需要 登录 后方可回复, 如果你还没有账号请 注册新账号