The Simple Factory pattern
The Entity-Component pattern along with using composition in preference to inheritance sounds great at first glance but brings with it some problems of its own. Not least of which it exacerbates all the problems we discussed in Chapter 18, Introduction to Design Patterns and much more!. It would mean that our new GameObject
class would need to know about all the different types of component and every single type of object in the game. How would it add all the correct components to itself?
It is true that if we are to have this universal GameObject
class that can be anything we want it to be whether a Diver, Patroller, PlayerShip, PinkElephant or whatever then we are going to have to code some logic that "knows" about constructing these super-flexible GameObject
instances and composes them with the correct components. But adding all this code into the class itself would make it exceptionally unwieldy and defeat the entire reason for using the Entity-Component...