#pragma once class DispenseItemBehavior; class BehaviorRegistry { private: unordered_map storage; DispenseItemBehavior *defaultBehavior; public: BehaviorRegistry(DispenseItemBehavior *defaultValue); ~BehaviorRegistry(); DispenseItemBehavior *get(Item *key); void add(Item *key, DispenseItemBehavior *value); };