3
Любопытно, что лучше всего подходит для доступа к переменной экземпляра из класса, предполагая attr_accessor.Доступ к переменному экземпляру Ruby
class Test
attr_accessor :user
def initializer(user)
@user = user
end
def foo
@user
end
end
или
class Test
attr_accessor :user
def initializer(user)
@user = user
end
def foo
self.user
end
end
Итак, переменный экземпляр (@user) или метода геттерной (Тест # пользователя)?
Идея рубиново-агностическая. См. Http://stackoverflow.com/questions/3069901, почему свойства должны быть предпочтительнее полей. – Gishu
Что делать, если attr_accessor добавляется только для внутреннего использования? Мне не нужны эти атрибуты для внешнего доступа, поэтому в этот момент нет необходимости добавлять attr_accessor, и поэтому имеет смысл просто использовать переменную экземпляра внутри, чтобы получить/установить? – user577808
@ user577808 тот же принцип применяется в классе, но чем меньше контекст, тем менее важно, потому что рефакторинг проще. Тем не менее, рекомендуется показать минимальный интерфейс класса, поэтому в этом случае, если вы используете get/set, он должен быть закрытым. – Mori