Ruby 笔记singleton
Singleton method
在Ruby中Singleton method是属于某一个对象的方法,而不是属于某一个类。在ruby中每一个类都Class类的对象,因此一个类的类方法(Class method)也可以看作是一个Singleton method。我们定义类方法的语法是在方法名前加上类名并用点号(.)隔开。而我们定义一个对象的Singleton method的方法是在方法名前加上对象名,例如:
def objectName.objectSingletonMethod
end
上面定义的objectSingletonMethod方法只属于objectName对象,objectName对象所属的类的其它对象不具有该方法。
Singleton class
它是一个匿名类,自己依附在某个对象上,类中定义的所有方法都是所依附的对象的singleton method。语法如下:
ob =MyClass.new
class << ob
def abc
puts "abc"
end
end
ob是一个对象,在class关键字和ob之间加一个"<<"符号,后面定义Singleton Class中的方法。