Если я хочу переименовать мой jedi
объект ниже, зачем мне создавать экземплярный метод с именем rename
, который использует метод setter name=
?Почему бы просто не использовать метод сеттера `name = 'напрямую?
Зачем это делать:
class Skywalker
attr_accessor :name
def initialize(name)
@name = name
end
def rename(new_name)
self.name = new_name
end
end
jedi = Skywalker.new('Anakin')
puts jedi.name
jedi.rename('Luke')
puts jedi.name
Когда вы можете просто сделать это:
class Skywalker
attr_accessor :name
def initialize(name)
@name = name
end
end
jedi = Skywalker.new('Anakin')
puts jedi.name
jedi.name = 'Luke'
puts jedi.name
Оба кодафрагменты выше делают то же самое, поэтому мне интересно, есть ли ситуация, когда было бы полезно иметь метод экземпляра rename
в дополнение к методу сеттера name=
.Потому что мне кажется, что они излишни.