class Proxy
def initialize(subject)
@subject = subject
end
def method_missing(method)
@subject.send(method)
end
end
proxy = Proxy.new(Time)
proxy.respond_to?(:now) # => false
proxy.now # => Fri Feb 05 00:34:53 -0500 2010
更好實現Proxy 的方法.
class Proxy
def initialize(subject)
@subject = subject
end
def method_missing(method)
if @subject.respond_to?(method)
@subject.send(method)
else
super(method)
end
end
def respond_to?(method, include_private = false)
super || @subject.respond_to?(method, include_private)
end
end
proxy = Proxy.new(Time)
proxy.respond_to?(:now) # => true
proxy.now # => Fri Feb 05 00:34:53 -0500 2010
沒有留言:
張貼留言