It defines an interface for creating an object, but lets subclasses alter the type of objects that will be created.
A Factory Method provides a way to defer instantiation to subclasses, promoting flexibility and reuse. For instance, in a shipping system, different shipping methods (e.g., air, land) could be created by overriding a factory method in subclasses.