當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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