本文简要介绍ruby语言中 Object.DelegateClass
的用法。
用法
DelegateClass(superclass, &block)
这个库的主要接口。用于在定义类时设置委托。
class MyClass < DelegateClass(ClassToDelegateTo) # Step 1
def initialize
super(obj_of_ClassToDelegateTo) # Step 2
end
end
或者:
MyClass = DelegateClass(ClassToDelegateTo) do # Step 1
def initialize
super(obj_of_ClassToDelegateTo) # Step 2
end
end
这是 Tempfile
的一个使用示例,它实际上是一个 File
对象,有一些关于存储位置的特殊规则以及何时应该删除 File
。这为如何使用委托提供了一个几乎教科书般的完美示例。
class Tempfile < DelegateClass(File)
# constant and class member data initialization...
def initialize(basename, tmpdir=Dir::tmpdir)
# build up file path/name in var tmpname...
@tmpfile = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL, 0600)
# ...
super(@tmpfile)
# below this point, all methods of File are supported...
end
# ...
end
调用超类方法
相关用法
- Ruby Object.Digest用法及代码示例
- Ruby Object.instance_variable_get用法及代码示例
- Ruby Object.display用法及代码示例
- Ruby Object.remove_instance_variable用法及代码示例
- Ruby Object.define_singleton_method用法及代码示例
- Ruby Object.methods用法及代码示例
- Ruby Object.public_send用法及代码示例
- Ruby Object.xmp用法及代码示例
- Ruby Object.singleton_methods用法及代码示例
- Ruby Object.enum_for用法及代码示例
- Ruby Object.freeze用法及代码示例
- Ruby Object.inspect用法及代码示例
- Ruby Object.obj ==用法及代码示例
- Ruby Object.method用法及代码示例
- Ruby Object.instance_of?用法及代码示例
- Ruby Object.nil?用法及代码示例
- Ruby Object.instance_variable_defined?用法及代码示例
- Ruby Object.singleton_class用法及代码示例
- Ruby Object.kind_of?用法及代码示例
- Ruby Object.send用法及代码示例
- Ruby Object.itself用法及代码示例
- Ruby Object.to_enum用法及代码示例
- Ruby Object.__id__用法及代码示例
- Ruby Object.is_a?用法及代码示例
- Ruby Object.instance_variable_set用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Object.DelegateClass。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。