rubyでデザインパターン abstract_factoryパターン

ドアを作るには専門のドア職人にお願いしなければなりません。
しかしドア職人も万能ではありません。木製のドアしか作れない職人、鉄製のドアしか作れない職人と専門があります。
この際のオブジェクトをグループ化したいです。つまり、木製のドアは木製のドアしか作れない職人と一緒にする。鉄製のドアは鉄製が得意な職人と一緒にするといった感じです。ここで心配なことがあります。木製のドアに鉄製のドアが専門の職人を一緒にするといったことがありえそうです。
これを解決するのがabstract_factoryパターンです。複数のオブジェクトをまとめて作るファクトリーといった感じです。

class Door
 def getDescription
 end
end

class WoodenDoor < Door
    def getDescription
        puts "木のドアです。"
    end
    
end

class IronDoor < Door
    def getDescription
        puts "私は鉄のドアです。"
    end
end

class DoorFittingExpert
    def getDescription
    end
end

class Welder < DoorFittingExpert
    def getDescription
        puts "私が取り付けられるのは木製のドアだけです。"
    end
end

class Carpenter < DoorFittingExpert
    def getDescription
        puts "私が取り付けられるのは鉄製のドアだけです。"
    end
end

class DoorFactory
    def makeDoor
    end
    
    def makeFittingExpert
    end
end

class WoodenDoorFactory < DoorFactory
    def makeDoor
        WoodenDoor.new
    end
    
    def makeFittingExpert
        Welder.new
    end
end

class IronDoorFactory < DoorFactory
    def makeDoor
        IronDoor.new
    end
    
    def makeFittingExpert
        Carpenter.new
    end
end

wooden_door_factory = WoodenDoorFactory.new
door = wooden_door_factory.makeDoor
expert = wooden_door_factory.makeFittingExpert
door.getDescription
expert.getDescription

iron_door_factory = IronDoorFactory.new
door = iron_door_factory.makeDoor
expert = iron_door_factory.makeFittingExpert
door.getDescription
expert.getDescription