本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。