gpt4 book ai didi

ruby - 你如何委托(delegate)类方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:36 24 4
gpt4 key购买 nike

我想创建一个将所有实例和类方法委托(delegate)给另一个类的类。我的目标是能够为在应用程序选项中设置的类提供一个看起来与其周围的代码相符的名称。

这是我目前所拥有的:

require 'delegate'

class Page < DelegateClass(PageAdapter)
# Empty
end

但是,这似乎只委托(delegate)实例方法,而不是类方法。

最佳答案

您可以定义自己的委托(delegate)方案:

class Page < DelegateClass(PageAdapter)
@@delegate_class=PageAdaptor
def self.delegate_class_method(*names)
names.each do |name|
define_method(name) do |*args|
@@delegate_class.__send__(name, *args)
end
end
end
delegate_class_method @@delegate_class.singleton_methods
end

关于ruby - 你如何委托(delegate)类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8912215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com