Building a simple Decorator
Imagine you’re building a loadout screen for an RPG or FPS where players can configure their character with buffs or items before going into battle. The idea here is to make these modifications dynamic (available when the game is running) so your players can play around with different configurations before committing. For our example, we’ll assume our in-game characters have an Attack
stat and a Battle
behavior that gets executed when we’re ready to enter the arena.
The flexible part of this scenario is that our players can choose to start the game with the character defaults and applied modifications or reset everything and start all over again! We’ll build this structure with a combination of interfaces, abstract classes, and concrete elements, all of which are covered in the following subsections.
Adding a Component interface
The foundation of the Decorator pattern is the Component
interface, which is going to...