本文简要介绍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 Deflate.new用法及代码示例
- Ruby DependencyState.pop_possibility_state用法及代码示例
- Ruby DependencyGraph.==用法及代码示例
- Ruby DependencyGraph.vertices用法及代码示例
- Ruby Deflate.deflate用法及代码示例
- Ruby Deprecate模块用法及代码示例
- Ruby DependencyGraph.tsort用法及代码示例
- Ruby DefMethod模块用法及代码示例
- Ruby Date.valid_civil?用法及代码示例
- Ruby DateTime jisx0301()用法及代码示例
- Ruby Date cwday()用法及代码示例
- Ruby Date ctime()用法及代码示例
- Ruby Date.gregorian?用法及代码示例
- Ruby DRb.regist_server用法及代码示例
- Ruby DH.public_key用法及代码示例
- Ruby Date asctime()用法及代码示例
- Ruby DateTime类用法及代码示例
- Ruby DateTime.hour用法及代码示例
- Ruby DateTime.jd用法及代码示例
- Ruby DateTime.zone用法及代码示例
- Ruby DateTime ordinal()用法及代码示例
- Ruby DateTime.second用法及代码示例
- Ruby Date.strftime用法及代码示例
- Ruby Digest.update用法及代码示例
- Ruby DSA.export用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Delegator类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。