Witam, dawno mnie tu nie było i nie mam dobrego usprawiedliwienia tego stanu rzeczy. W tym artykule przeanalizujemy wzorzec projektowy fabryka (factory, wirtualny konstruktor, metoda wytwórcza). Sprawa jest dość prosta wzorzec ten opisuje sytuacje w której proces tworzenia obiektu delegowany jest do specjalnej klasy(functora lub zwykłej funkcji lub singletona). Korzyść z takiego podejścia to scentralizowanie tworzenia skomplikowanych obiektów będących podklasami jednego ogólnego obiektu. Poniżej uogólniona implementacja metody wytwórczej: template <typename T> class Factory { public: static Factory<T>& getInstance() { static Factory<T>* instance = NULL; if(!instance) { std::lock_guard<std::mutex> guard( Factory<T>::factoryCreationMutex ); if(!instance) { instance = new Factory<T>(); } } return *instance; } T* createObject(std::stri