class Event
@event_list = {}
attr_reader :name, :value
def initialize(name, value)
@name = name
@value = value
end
def to_s
"#{@value}"
end
class << self
def event_list
@event_list
end
def event_list=(value); end
def register_event(name, value)
@event_list[name] = Event.new(name, value)
end
def registered_events
event_list
end
end
end
在上面的代码片段中,我可以使用 Event.event_list 访问@event_list,有趣的是我可以从外部修改这个变量
Event.event_list[:name] = "hello"
Event.event_list # => { :name => 'hello' }
我怎样才能避免这种情况?,我不想从外部修改@event_list。