Abstract Factory – dynamická implementace Vlastnosti  továrna spravuje mapování: identifikátor typu  vytvořující funkce  konkrétní typy vytvářených objektů se registrují jednotlivě za běhu  stačí jedna univerzální implementace továrny  použití – systémy, kde neznáme přesné typy při kompilaci class Factory { typedef AbstractProduct* (*ProductCreator)(); map mapping; public: bool Register(IdType id, ProductCreator creator) { return mapping.insert(make_pair(id, creator)).second; } bool Unregister(IdType id) { return mapping.erase(id) == 1; } AbstractProduct* CreateObject(IdType id) { auto it = mapping.find(id); if (it != mapping.end()) return (*it->second)(); return 0; } };
{}