In this chapter, we learned how to use the Observer pattern to decouple BikeController from its dependencies by assigning them the roles of subject or observer. Our code is now easier to manage and extend as we can easily have BikeController interact with other controllers with minimal coupling.
In the next chapter, we will explore the Visitor pattern, one of the most challenging patterns to learn. We will use it to build power-ups, a core mechanic and ingredient of our game.