#pragma once #include #include #include "TileBehavior.h" class TileBehaviorFactory { typedef std::map TileBehaviorCollection; public: static TileBehavior & get_strategy(std::string); static void register_strategy(std::string, TileBehavior *); private: static TileBehaviorCollection & get_collection() { static TileBehaviorCollection c = {}; return c; } };