浏览 6279 次
锁定老帖子 主题:Ruby定义静态方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-29
有两种方法
class Test class << self def a puts "static method" end end end
2. 我喜欢用的方式
class Test def self.a puts "static method" end end
调用就很简单了
Test.a 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-10-12
我喜欢第一种, 习惯, 这种可以大批量定义, 第二种每次都要写self
|
|
返回顶楼 | |
发表时间:2011-10-13
应该还有种,和第一种类似
def Test.a ... end |
|
返回顶楼 | |
发表时间:2011-10-14
喜欢第一种~
|
|
返回顶楼 | |
发表时间:2011-10-14
AndyTse 写道 应该还有种,和第一种类似
def Test.a ... end 这个有个问题,就是每次该类名,还得改你这个方法定义,不太符合DRY原则。 |
|
返回顶楼 | |
发表时间:2011-10-14
javafansmagic 写道 AndyTse 写道 应该还有种,和第一种类似
def Test.a ... end 这个有个问题,就是每次该类名,还得改你这个方法定义,不太符合DRY原则。 1. 在某些时候你必须这么写.比如你要修改所有继承了该类的方法的时候.(在ruby中这种用法比较常见) 2. 这个也不算违反DRY,你既然要重构它就不可能只改一个类名,相关的生成器神马的都要改了. |
|
返回顶楼 | |
发表时间:2011-10-14
小弟新人,刚学一天,还只会第二种,呵呵。
|
|
返回顶楼 | |
发表时间:2011-10-20
其实吧,class < self这样在写单例类时比较好,def self.xxx在写以instace class用起来看着舒服
|
|
返回顶楼 | |