Производный класс разделяет переменные класса? - PullRequest
0 голосов
/ 11 мая 2011

У меня есть класс Cache и 2 производных класса Foo и Bar (упрощение, но принцип тот же).

class Cache

  @@test = []

  def self.test
    @@test
  end

 def self.add(value)
   @@test << value
 end

end

class Foo < Cache
end

class Bar < Cache
end

Выполнение следующего приводит меня к выводу, что@@ test не уникален для Foo и Bar, но уникален только для Cache, чего я не хочу и не ожидаю.

Foo.add(1) #[1]
Bar.add(2) #[1,2]
puts Foo.test #[1,2]

Разве это не должнобыть:

Foo.add(1) #[1]
Bar.add(2) #[2]
puts Foo.test #[1]

Как я могу получить поведение, которое я хочу?Почему Руби делает это так странно?

1 Ответ

0 голосов
/ 09 января 2012

Решением в этом случае было не использование статических классов, а всего лишь 2 экземпляра класса, который я хотел, и сохранение их в статической переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...