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

面接官が面接を行います。しかし、一人でマーケターやエンジニアなどすべて職種の面接官を一人で行うことは出来ません。エンジニアの面接はエンジニアにお願いし、マーケターの面接はマーケターにしてもらいましょう。
ここでのfactoryはHiringManagerです。このクラスのサブクラスであるDevelopmentManagerとMarketingManagerでmakeInterviewerというメソッドを用意しクラス生成を行なっている。このメソッドのことをファクトリーメソッドという。
テンプレートメソッドパターンをどのオブジェクトを生成するかに使ったパターンです。factory_methodパターンはtemplate_methodパターンの一種と言える。

class Interviewer
    def askQuestion
    end
end

class Developer < Interviewer
    def askQuestion
        puts "開発について"
    end
    
end

class CommunityExecutive < Interviewer
    def askQuestion
        puts "コミュニティについて"
    end
    
end


class HiringManager
    def makeInterviewer
        
    end
    
    def takeInterview
        interviewer = makeInterviewer
        interviewer.askQuestion
    end
end

class DevelopmentManager < HiringManager
    def makeInterviewer
        Developer.new
    end
end

class MarketingManager < HiringManager
    def makeInterviewer
        CommunityExecutive.new
    end
    
end
    
marketer = MarketingManager.new
developer = DevelopmentManager.new

marketer.takeInterview
developer.takeInterview