I have a class that build some data and generator objects. Method generate delegates execution to generators objects. What is the best way to initialize generators and data needed for generation. I see two alternatives:
Initialize data in readers:
class SomeClass
def generate
generators.each(&:generate)
end
def generators
@generators ||= some_data.map do |data|
generator_class.new(data)
end
end
def some_data
@some_data ||= # initialize some not trival data
end
def generator_class
@generator_class ||= # finding generator class
end
end
or load everything in generate method:
class SomeClass
def generate
generator_class = find_generator_class
some_data = initialize_some_data
generators ||= some_data.map do |data|
generator_class.new(data)
end
generators.each(&:generate)
end
def initialize_some_data
end
def find_generator_class
end
end
Which one looks better? Maybe there is another way to do something like that?
Aucun commentaire:
Enregistrer un commentaire