Шаблон FactoryMethod на Ruby
Я изучаю шаблоны проектирования. Как вы думаете, это подходящий пример шаблона FactoryMethod?
Есть Подразделение и его подклассы: Солдат и Доктор. Они могут как-то приветствовать. Есть также UnitFactory, SoldierFactory и DoctorFactory. Они производят соответствующие единицы.
class Unit
class GreetError < StandardError; end
def greet; raise GreetError; end
end
class Soldier < Unit
def greet; 'I am a soldier'; end
end
class Doctor < Unit
def greet; 'I am a doctor'; end
end
class UnitFactory
class CreateUnitError < StandardError; end
def create_unit; raise CreateUnitError; end
end
class SoldierFactory < UnitFactory
def create_unit; Soldier.new; end
end
class DoctorFactory < UnitFactory
def create_unit; Doctor.new; end
end
class Army
attr_reader :unit_factory, :count, :units
def initialize(unit_factory, count)
@unit_factory = unit_factory
@count = count
@units = []
gather
end
def gather
count.times { units << unit_factory.create_unit }
end
def greet
units.map { |unit| unit.greet }
end
end