Option 3: Factory Method
The Factory Method pattern is specifically designed to define an interface for creating objects but lets subclasses or derived classes determine the type of objects to be created. It provides a way to delegate the responsibility of instantiating objects to its subclasses, allowing for flexibility in the creation process.
Abstract Factory (Option 1) is more about providing an interface for creating families of related or dependent objects.
Builder (Option 2) is used to construct a complex object step by step. It separates the construction of a complex object from its representation.
Prototype (Option 4) is about creating new objects by copying an existing object, which is often used when the cost of creating an object is more expensive or complex than copying an existing one.