O padrão Factory fornece uma forma de criar objetos sem especificar sua classe exata — um método ou classe que lida com a criação de objetos, decidindo qual tipo instanciar. Ele centraliza e abstrai a criação de objetos, desacoplando o código de classes concretas.
O que o padrão Factory faz
FACTORY → encapsulate object CREATION (instead of calling constructors directly):
→ a factory method/class decides WHICH class to instantiate and creates it
→ the caller asks the factory for an object (by type/parameter) → gets the right object
WITHOUT knowing/specifying the concrete class
→ decouples code from CONCRETE classes; centralizes creation logic
