当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby SingleForwardable模块用法及代码示例


本文简要介绍ruby语言中 SingleForwardable模块 的用法。

SingleForwardable 也可用于在对象级别设置委托。

printer = String.new
printer.extend SingleForwardable        # prepare object for delegation
printer.def_delegator "STDOUT", "puts"  # add delegation for STDOUT.puts()
printer.puts "Howdy!"

此外, SingleForwardable 可用于为 Class Module 设置委托。

class Implementation
  def self.service
    puts "serviced!"
  end
end

module Facade
  extend SingleForwardable
  def_delegator :Implementation, :service
end

Facade.service #=> serviced!

如果要同时使用 Forwardable 和 SingleForwardable ,可以使用方法 def_instance_delegator 和 def_single_delegator 等。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 SingleForwardable模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。