Creating Items with the Factory Method Pattern
In the last chapter, we built an enemy-spawning system using the Prototype pattern, Unity prefabs, and C# generics. In this chapter, we’ll learn how the Factory Method pattern not only lets you specify a common interface for any objects you’re creating but also lets the subclass decide the actual class being instantiated. Think of games you’ve played or built that used NPCs – wouldn’t it be nice if there was a mechanism that could create NPCs using a single underlying class but that could also defer the concrete type (a quest giver or random village person) that rolls off the assembly line? Well, that’s exactly what the Factory Method pattern does!
Before we dive in any further, we should talk about two design patterns related to factories: the Factory Method and Abstract Factory patterns. The Factory Method pattern allows you to make objects without specifying the exact class being instantiated...