Esiste un modello di fabbrica diverso dal metodo astratto di fabbrica e di fabbrica?

3

Durante una schermata del telefono recente mi è stato chiesto di descrivere il "modello di fabbrica". Ho chiesto se lo screener significasse "Metodo di fabbrica" o "Fabbrica astratta". Ha detto, "No, solo il modello di fabbrica".

Non so cosa sia il Pattern di fabbrica tranne nel contesto dei modelli di GoF sopra menzionati. Ho fatto ricerche su questo dallo schermo del telefono, ma non ho trovato nulla che indichi che esiste un terzo Pattern Factory "giusto". Il più vicino che ho ricevuto era questa domanda , ma sembra ancora distinguere il metodo Factory da Abstract Factory.

Esiste un terzo modello di progettazione di fabbrica distinto? In caso contrario, "Modello di fabbrica" significa sempre "Metodo di fabbrica"?

    
posta kojiro 30.11.2015 - 15:29
fonte

2 risposte

5

Per quanto ne so, nessuna libreria di modelli di progettazione discute qualsiasi cosa chiamata "modello di fabbrica". Esiste un termine generale "fabbrica" , che si riferisce semplicemente a un oggetto che crea altri oggetti. Ma se stai parlando dei nomi documentati per i pattern, devi essere specifico - dopotutto, parte del punto di design pattern è per la comunicazione, quindi tutti dovrebbero usare gli stessi termini.

Alcuni siti discutono diversi tipi di fabbriche specifiche, come la Fabbrica astratta e il Metodo di fabbrica insieme. OODesign.com fa questo e C2 wiki ha una pagina chiamata" FactoryPattern " che si collega alle pagine per Abstract Factory e Factory Method.

    
risposta data 30.11.2015 - 15:36
fonte
2

Modello di fabbrica si riferisce al principio generale di avere un'entità (sia essa una classe, una classe astratta, un'interfaccia o un metodo) che sa come creare istanze di altre entità (di solito oggetti che implementano un'interfaccia di interesse) per conto di un chiamante in modo che il chiamante non debba sapere come crearli.

Sia le fabbriche astratte che i metodi di fabbrica sono specializzazioni del modello di fabbrica. Quindi, penso che l'intervistatore fosse un po 'pignolo. O forse non sono riusciti a comunicarti che tutto quello che volevano da te era di descrivere il principio generale, senza preoccuparsi di alcun dettaglio. O forse erano sospettosi sul fatto che tu comprendessi il principio generale e non hai semplicemente memorizzato le definizioni di alcuni termini.

    
risposta data 01.12.2015 - 02:09
fonte