| Dependency Injection: Vital or Irrelevant? | [ Prev | Home | Next ] |
From Back to the
Wiring Problem
def initialize(factory)
@sensor = factory.make_pot_sensor
@heater = factory.make_heater
end
class Factory
def make_heater
Heater.new
end
def make_pot_sensor
PotSensor.new
end
end
factory = Factory.new
warmer = Warmer.new(factory)
| Better Code
def initialize(sensor_class,
heater_class)
@sensor = sensor_class.new
@heater = heater_class.new
end
or factory = OpenStruct.new
factory.heater = Heater
factory.sensor = Sensor
def initialize(factory)
@sensor = factory.sensor.new
@heater = factory.heater.new
end
|
| O'REILLY® OSCON 2005 | Copyright © 2005 by Jim Weirich (Some Rights Reserved) |