Ruby单态方法知识讲堂

Ruby语言是一个比较新的编程语言。不过它独有的特性可以让我们很容易上手,灵活性也比较强,能够方便的帮助我们实现许多功能需求。下面我们就一起来看看Ruby单态方法的一些介绍。#t#

  1. ruby> class SingletonTest   
  2. | def size   
  3. | print "25\n"   
  4. | end   
  5. | end   
  6. nil   
  7. ruby> test1 = SingletonTest.new   
  8. #<SingletonTest:0xbc468>   
  9. ruby> test2 = SingletonTest.new   
  10. #<SingletonTest:0xbae20>   
  11. ruby> def test2.size   
  12. | print "10\n"   
  13. | end   
  14. nil   
  15. ruby> test1.size   
  16. 25   
  17. nil   
  18. ruby> test2.size   
  19. 10   
  20. nil  

 

在这个例子里,test1和test2属于相同的类,但test2已被赋给一个重载的size方法,因而他们有不同的行为.一个仅属于某个对象的方法叫做单态方法.

Ruby单态方法常常用于图形用户界面(GUI)的元素的设计,在那里当不同的按钮被压下时将会激发不同的事件.

Ruby单态方法并非Ruby的专利,它也出现在CLOS,Dylan等语言中.同时,有些语言,比如,Self和NewtonScript仅有单态方法.他们有时被称作基于范例(prototype-based)语言.

THE END