Breaking down the Type Object pattern
While the Type Object pattern wasn’t included in the original Gang of Four context, it still belongs to the behavioral category because it deals with communication between objects, specifically between the Instance Object (all playable characters are heroes) and its type object (elves are elvish type heroes). The Type Object pattern is useful when:
- You don’t know the exact number or kind of types you’ll need right from the start.
- You want to avoid big class hierarchies that initialize, override, and manage the same shared properties.
- You need to add or change types without breaking existing code.
Let’s start from scratch to avoid any assumptions. We have a game that needs lots of monsters; monsters can be trolls, zombies, or dragons, and these trolls, zombies, and dragons can come in strong, average, or weak flavors. On top of that, our monsters can have ice, fire, and lightning elemental...