Ciao
Il factory method design pattern è una linea guida che aiuta a risolvere un caso specifico, ovvero la possibilità di scrivere codice senza sapere la classe concreta da utilizzare.
In pratica:
- Se quando scrivi il codice sai già la classe che devi utilizzare, allora meglio istanziarla direttamente
- Se quando scrivi il codice NON sai la classe da utilizzare, allora si consiglia di usare il factory
Così al volo non mi vengono in mente esempi col prodotto, però pensa alla carta di credito. Supponi di dover implementare il software che gira sul POS che la gestisce: sai che si tratta di una carta di credito, però non sai esattamente quale sia.
Questo esempio viene bene con il Factory:
- Hai la classe base "CartaDiCredito"
- Hai le varie implementazioni concrete (Visa, Mastercard, PostePay, ...)
- Nel codice POS chiami il Factory passandogli il numero della carta di credito e lui si arrangia a restituirti la carta di credito corretta
Spero così sia più chiara la casistica in cui conviene usare tale pattern