Nota: le domande sono alla fine del post.
Ho letto gli altri thread di StackOverflow relativi a Abstract Factory vs Factory Method . Capisco l'intento di ogni modello. Tuttavia, non sono chiaro sulla definizione.
Il metodo Factory definisce un'interfaccia per la creazione di un oggetto, ma consente alle sottoclassi di decidere quale di queste istanziare. Un metodo factory consente alle classi di rinviare l'istanza alle sottoclassi.
Al contrario, una Fabbrica astratta fornisce un'interfaccia per la creazione di famiglie di oggetti correlati o dipendenti senza specificare le loro classi concrete.
The Abstract Factory è molto simile al metodo Factory . Ho disegnato alcune classi UML per illustrare il mio punto.
Nota:
- I diagrammi provengono da www.yuml.com quindi non sono perfettamente orientati. Ma è un servizio gratuito :).
- Gli schemi potrebbero non essere perfetti. Sto ancora imparando i modelli di progettazione GoF .
Metodo di fabbrica:
Fabbrica astratta (solo 1 membro):
Fabbrica astratta (più membri):
Domande:
- Se la Fabbrica astratta ha solo un creatore e un prodotto, è ancora il modello Fabbrica astratta? (un'interfaccia per la creazione di famiglie)
- Il creatore concreto del metodo Factory può essere creato da un'interfaccia o deve appartenere a una classe? (le classi rimandano le istanze alle sottoclassi)
- Se la Fabbrica astratta può avere solo un creatore e un prodotto, l'unica differenza tra la Fabbrica astratta e il Metodo di fabbrica è che il creatore del primo è un'interfaccia e il creatore del secondo è una classe?