Qual è la mancanza di fabbrica personalizzata che si confronta con una fabbrica generica [chiusa]

0

Ho un metodo factory come indicato di seguito

public class AutomobileFactory
{
    Dictionary<string, ICar> internalFactory = new Dictionary<string, ICar>();
    public AutomobileFactory()
    {
        internalFactory.Add("fiat",new Fiat());
        internalFactory.Add("ford", new Ford());
    }

    public ICar Create(string carType)
    {
        return internalFactory[carType];
    }
}

È un codice molto umile. Ora, ho fatto riferimento a Modello di fabbrica con generici . Ma non sono in grado di capire quale extra questo approccio generico può offrire.

DOMANDA

Qual è la mancanza della fabbrica sopra riportata rispetto alla fabbrica generica?

    
posta Lijo 05.02.2014 - 18:00
fonte

1 risposta

5

Le versioni generiche di algoritmi generalmente forniscono sicurezza di tipo. La tua versione accetta una stringa per specificare il tipo. Quella stringa potrebbe essere qualsiasi cosa, e il compilatore non può controllarla per vedere se è corretta.

Se specifichi un tipo nella tua versione che non hai registrato, non lo saprai fino a che il programma non verrà effettivamente eseguito, dove causerà un errore o non farà nulla. Nella versione generica che hai collegato, non devi nemmeno registrare i tipi; userà qualsiasi tipo tu fornisca.

Per quello che vale, l'articolo che hai collegato sembra descrivere molte cerimonie per non avere molti benefici. "Lo so, scriverò la madre di tutte le fabbriche in modo che non debba mai più scrivere un'altra fabbrica". Oppure, potresti, basta, istanziare il tipo di cui hai bisogno, e andare avanti con esso.

Vedi anche
Fabbriche astronautiche astratte

    
risposta data 05.02.2014 - 18:03
fonte

Leggi altre domande sui tag