当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Delegator类用法及代码示例


本文简要介绍ruby语言中 Delegator类 的用法。

该库提供了三种不同的方法来将方法调用委托给对象。最容易使用的是 SimpleDelegator 。将对象传递给构造函数,该对象支持的所有方法都将被委托。以后可以更改此对象。

更进一步,顶级DelegateClass 方法允许您通过类继承轻松设置委托。这相当灵活,因此可能是该库最常见的用途。

最后,如果您需要完全控制委托方案,您可以从抽象类 Delegator 继承并根据需要进行自定义。 (如果您发现自己需要此控件,请查看标准库中的 Forwardable。它可能更适合您的需求。)

SimpleDelegator 的实现是使用 Delegator 的一个很好的例子:

require 'delegate'

class SimpleDelegator < Delegator
  def __getobj__
    @delegate_sd_obj # return object we are delegating to, required
  end

  def __setobj__(obj)
    @delegate_sd_obj = obj # change delegation object,
                           # a feature we're providing
  end
end

注意

请注意, RDoc 不会检测委托方法。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Delegator类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。