ruby> SingletonTest
| def size
| pr "25\n"
| end
| end
nil
ruby> test1 = SingletonTest.
#<SingletonTest:0xbc468>
ruby> test2 = SingletonTest.
#<SingletonTest:0xbae20>
ruby> def test2.size
| pr "10\n"
| end
nil
ruby> test1.size
25
nil
ruby> test2.size
10
nil
在这个例子里,test1和test2属于相同类,但test2已被赋给个重载size思路方法,因而他们有区别行为.个仅属于某个对象思路方法叫做单态思路方法.
单态思路方法常常用于图形用户界面(GUI)元素设计,在那里当区别按钮被压下时将会激发区别事件.
单态思路方法并非Ruby专利,它也出现在CLOS,Dylan等语言中.同时,有些语言,比如,Self和NewtonScript仅有单态思路方法.他们有时被称作基于范例(prototype-based)语言.
最新评论