Dear Freinds, Class Method and Singletons are the same? Can you explain me with some simple code. Many thanks in advance, regards, salai.
on 2009-06-03 19:07
on 2009-06-03 21:56
salai <email@example.com> wrote: > Class Method and Singletons are the same? No, not quite. > Can you explain me with some simple code. It's very simple. There are really no class methods; there are only instance methods. It is convenient to talk about class methods, but in Ruby things are very elegant: a class is itself an instance (of the Class class), and so a "class method" is merely an instance method of that instance (i.e. an instance method of an instance of the Class class). Okay, so when you define a class method by saying class C end def C.my_method end ...you are doing EXACTLY the same thing that you are doing when you define an instance method on any individual instance: thing = Object.new def thing.my_method end Exactly WHAT same thing? You are opening the instance and defining an instance method applicable to that instance only. That is the "singleton". So when you define a class method you are actually creating a singleton instance method on that Class instance. m. PS By the way, in a completely different context (a proposed book about rb-appscript) I have written an "introduction to Ruby" chapter that might help you with these concepts. It's here: http://www.apeth.com/ruby/02justenoughruby.html Hope this helps.