/////////////////////////////////////////////////////////////////////////// // Configurer.cpp - configures factory for client // // // // Jim Fawcett, CSE776 - Design Patterns, Summer 2009 // /////////////////////////////////////////////////////////////////////////// #include "Configurer.h" #include "FactoryMap.h" #include "ConcreteProduct.h" bool Configure::doConfigure(const std::string& ProductId) { Creator creator; if(ProductId == "first") { creator.Register(ProductId, CreateConcreteProduct1); return true; } if(ProductId == "second") { creator.Register(ProductId, CreateConcreteProduct2); return true; } return false; } Product* Configure::GetProduct(const std::string &ProductId) { Creator creator; Creator::FactoryMethod fm = creator.GetFactory(ProductId); return fm(); }