2010-09-01 2 views
1

Я создаю систему имитации генетической популяции в JRuby.лучший способ доступа к родительскому объекту из дочернего объекта

Я создал такие классы, как Allele, Gene, Organism, Population.

Объект Population содержит несколько объектов Organism (в массиве), каждый объект Organism содержит несколько генов и т. Д.

В настоящее время очень легко узнать, например, что Джин создает определенный объект Организма. Однако, если все, что у меня есть, является объектом Gene, я не знаю, к какому организму он принадлежит.

Одно из решений я подумал это:

attr_accessor :name, :parent 
def initialize(name, parent) 
    @name = name 
    @parent = parent #parent will be the parent object 
end 

Если я сделаю это, будет @parent быть просто ссылка на родительский объект в памяти, или это будет совершенно новый объект?

Это лучший способ сделать это? Есть ли еще один «лучший» способ сделать это?

Спасибо!

+3

FWIW: Я думаю, что это полностью вопрос JRuby, и ваши другие теги являются неактуальными. Ваш вопрос по существу сводится к «Does @parent = parent копировать ссылку или весь объект», и ответ полностью зависит от семантики JRuby. (В Java ответ будет: вы копируете ссылку, но я не знаю JRuby, поэтому я не могу ответить на ваш реальный вопрос.) –

ответ

1

JRuby, как вы полагаете, просто сохранит ссылку на объект, а не создаст его копию.

Это совершенно разумный способ подойти к проблеме. Вы сохраняете ссылку на объект, к которому хотите обратиться!

Смежные вопросы