2011-05-22 69 views
0

我似乎进入了很多情况,当我重构一个类的时候,我经常创建几个方法,它们只是将信息传递给新的(现在的)下属类。所以说我有Obj1,它有15种方法,我最终将4移入Obj2。现在,我有4种方法OBJ1是刚:有没有办法让对象传递可以自动共享的方法?

def foo arg1, arg2 
    @obj2.foo arg1, arg2 
end 

def bar arg1 
    @obj2.bar arg1 
end 

,我觉得有可能是一条线的方式,让访问这些方法是删除一个级别。像:

foo, bar = @obj2.foo, @object2.bar 

@obj2.release(:foo, :bar)` 

它必须沿着课程的全部方法参数传递。看起来这是python中的一个概念,称为描述符,但在Ruby中我没有看到任何等效的东西。是吗?

+0

实例变量在同一类的所有函数中都可用。你能举一个更清晰的例子吗? – apneadiving 2011-05-22 18:50:30

回答

4

如果你使用Rails(您标记它),你可以使用delegate method

class Widget 
    delegate :foo, :bar, :to => '@obj2' 
end 

然后调用Widget实例foo的方法只是把它在任何@ obj2的是。

相关问题