Определение метода доступа для той же переменной экземпляра класса для набора подклассов в Ruby
У меня есть суперкласс и набор подклассов. В каждом подклассе я определяю переменную экземпляра класса с тем же именем x
, Чтобы создать метод доступа для одного из этих классов, я бы просто использовал определение подкласса:
class << self
attr_accessor :x
end
Я хотел бы избегать использования этих же строк кода во всех моих определениях подкласса. Но если я добавлю это в определение суперкласса, то не будет ли он определять метод доступа для переменной экземпляра суперкласса? Это не то, что я хочу. Есть ли способ определить метод доступа для переменных экземпляра класса всех подклассов в одном месте?
1 ответ
Помните, что директива attr_accessor фактически определяет два метода: x() и x=(). Теперь, если вы объявите два открытых метода в своем суперклассе, будут ли они доступны в подклассах? Ответ - да, если вы не переопределите их.
Так что поместить эту директиву в суперкласс просто замечательно и будет работать чарующе.