我正在JRuby创建一个群体遗传学模拟系统。
我创建了诸如Allele,Gene,Organism,Population等课程。
Population对象包含多个Organism对象(在数组中),每个Organism对象包含多个Genes,依此类推。
目前,很容易知道某个生物体对象具有的Gene对象。但是,如果我拥有的只是一个Gene对象,我不知道它属于什么样的有机体。
我想到的一个解决方案是:
attr_accessor :name, :parent
def initialize(name, parent)
@name = name
@parent = parent #parent will be the parent object
end
如果我这样做,@ parent只是对内存中父对象的引用,还是一个全新的对象?
这是最好的方法吗?还有另一种“更好”的方法吗?
谢谢!
答案 0 :(得分:1)
如你所说,JRuby只会保留对象的引用,而不是创建它的副本。
这是解决问题的一种非常明智的方法。您要保留对要引用的对象的引用!