/ / Ruby: Prístup k premennej inštancie nadradeného objektu - rubín, premenné inštancie

Ruby: Prístupová premenná inštancie nadradeného objektu - ruby, premenné inštancie

Mám súbor predmetov, z ktorých každý sámvytvorte kopu pomocných predmetov. Vo vnútri pomocných objektov potrebujem prístup k mnohým premenným inštancie rodičov, ako je napríklad „meno“, objekt záznamníka a niektoré ďalšie.

Mohol som inicializovať pomocné objekty so všetkými potrebnými premennými, ale zdá sa mi to dosť zdĺhavé. Existuje spôsob, ako sprístupniť premenné inštancie rodičov všetkým objektom, ktoré vlastní?

Našiel som množstvo podobných otázok, ale väčšina sa týka triednych premenných a dedičnosti, takže som zatiaľ nenašiel riešenie.

Príklad a rubyfiddle:

class Helper
def initialize()
end

def complexStuff
puts # Parent object name
end
end

class Main
attr_accessor :name

def initialize( name )
@name = name
@helper = Helper.new
end

def update
puts "[(#{name}).update]"
@helper.complexStuff
end
end

instance1 = Main.new( "Instance 1" )
instance2 = Main.new( "Instance 2" )

instance1.update
instance2.update

rubyfiddle

odpovede:

2 pre odpoveď č. 1

Prečo nielen odovzdať rodiča?

class Helper
def initialize(parent)
@parent = parent
end

def complexStuff
puts @parent.name # Parent object name
end
end

class Main
attr_accessor :name

def initialize( name )
@name = name
@helper = Helper.new(self)
end

def update
puts "[(#{name}).update]"
@helper.complexStuff
end
end

instance1 = Main.new( "Instance 1" )
instance2 = Main.new( "Instance 2" )

instance1.update
instance2.update