本文简要介绍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 SingleForwardable.def_single_delegators用法及代码示例
- Ruby SingleLine.new用法及代码示例
- Ruby Singleton模块用法及代码示例
- Ruby SizedQueue clear()用法及代码示例
- Ruby SizedQueue push()用法及代码示例
- Ruby SimpleDelegator.__setobj__用法及代码示例
- Ruby SizedQueue shift()用法及代码示例
- Ruby Signal.trap用法及代码示例
- Ruby SizedQueue enq()用法及代码示例
- Ruby SizedQueue max()用法及代码示例
- Ruby SizedQueue empty?用法及代码示例
- Ruby SimpleDelegator类用法及代码示例
- Ruby SizedQueue pop()用法及代码示例
- Ruby SizedQueue new()用法及代码示例
- Ruby SizedQueue length()用法及代码示例
- Ruby SignalException类用法及代码示例
- Ruby SizedQueue deq()用法及代码示例
- Ruby Signal.list用法及代码示例
- Ruby SizedQueue close()用法及代码示例
- Ruby Signal模块用法及代码示例
- Ruby Signal.signame用法及代码示例
- Ruby SizedQueue size()用法及代码示例
- Ruby SizedQueue max=用法及代码示例
- Ruby Symbol capitalize用法及代码示例
- Ruby Spotter.spot_op_asgn2_for_name用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 SingleForwardable模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。