# Factory Method パターン # # Java言語で学ぶデザインパターンと同様の例題をRubyで記述した。 # # coded by Takehiro Kaga # class Product def use end end class Factory def create(owner) p = createProduct(owner) registerProduct(p) p end def createProduct(owner) end def registerProduct(product) end end class IDCard < Product def initialize(owner) puts(owner + "のカードを作ります") @owner = owner end def use puts(@owner + "のカードを使います") end def getOwner @owner end end class IDCardFactory < Factory def initialize @owners = Array.new end def createProduct(owner) IDCard.new(owner) end def registerProduct(product) @owners.push(product.getOwner) end def getOwners @owners end end # --- Main ---- # factory = IDCardFactory.new card1 = factory.create("結城浩") card2 = factory.create("とむら") card3 = factory.create("佐藤花子") card1.use card2.use card3.use