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