Il pattern Factory fornisce un modo per creare oggetti senza specificare la loro classe esatta — un metodo o una classe che gestisce la creazione di oggetti, decidendo quale tipo istanziare. Centralizza e astrae la creazione di oggetti, disaccoppiando il codice dalle classi concrete.
Cosa fa il pattern Factory
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
