Ruby 如何编写调用基类';当它们';重新定义?
假设我有一门课:Ruby 如何编写调用基类';当它们';重新定义?,ruby,class,Ruby,Class,假设我有一门课: class ComponentLibrary def self.register(klass); ...; end end 假设我还有一个基类: class BaseComponent ComponentLibrary.register self end 我如何编写派生类,以最少的重复次数,在定义它们时将自己注册到ComponentLibrary?(换句话说,我不想到处写ComponentLibrary.register self。) 说清楚点,我说的是写其他课程,
class ComponentLibrary
def self.register(klass); ...; end
end
假设我还有一个基类:
class BaseComponent
ComponentLibrary.register self
end
我如何编写派生类,以最少的重复次数,在定义它们时将自己注册到ComponentLibrary
?(换句话说,我不想到处写ComponentLibrary.register self
。)
说清楚点,我说的是写其他课程,比如:
class RedComponent < BaseComponent
# ...
end
class BlueComponent < BaseComponent
# ...
end
class RedComponent
但我不想编写组件库。为每个组件注册self。类BaseComponent
class BaseComponent
def self.inherited(base)
ComponentLibrary.register(base)
end
end
class RedComponent < BaseComponent
end
def self.inherited(基本)
组件库.寄存器(基)
结束
结束
类RedComponent
这方面的东西可能适合你
编辑:更改为#继承。类基本组件
def self.inherited(基本)
组件库.寄存器(基)
结束
结束
类RedComponent
这方面的东西可能适合你
编辑:更改为#继承。这不起作用,因为模块只包含一次——在最初定义BaseComponent时。一旦你创建了一个新类(例如,尝试
class-DerivedComponent
),它就会中断。这不起作用,因为模块只包含一次——在最初定义BaseComponent时。一旦你创建了一个新类(例如,尝试class-DerivedComponent
),它就会中断。