Определение метода доступа для той же переменной экземпляра класса для набора подклассов в Ruby

У меня есть суперкласс и набор подклассов. В каждом подклассе я определяю переменную экземпляра класса с тем же именем x, Чтобы создать метод доступа для одного из этих классов, я бы просто использовал определение подкласса:

class << self
  attr_accessor :x
end

Я хотел бы избегать использования этих же строк кода во всех моих определениях подкласса. Но если я добавлю это в определение суперкласса, то не будет ли он определять метод доступа для переменной экземпляра суперкласса? Это не то, что я хочу. Есть ли способ определить метод доступа для переменных экземпляра класса всех подклассов в одном месте?

1 ответ

Решение

Помните, что директива attr_accessor фактически определяет два метода: x() и x=(). Теперь, если вы объявите два открытых метода в своем суперклассе, будут ли они доступны в подклассах? Ответ - да, если вы не переопределите их.

Так что поместить эту директиву в суперкласс просто замечательно и будет работать чарующе.

Другие вопросы по тегам