Come da titolo ho problemi a decidere quale potrebbe essere la "struttura" migliore per il problema che devo risolvere.
Ho una Gerarchia di Classi/Classi Astratte/Interfacce su 3 Livelli "di profondita", ma essenzialmente il mio problema riguarda la "capostipite" (la piu' generica) e l'istanza realmente utilizzata (la piu' specifica).
In sostanza devo creare la classe specifica e poi eseguire il metodo comune e tutte ed ereditato dalla classe generica.
Le soluzioni che mi sono venute in mente sono le seguenti (in "pseudocodice"):
SOLUZIONE 1)
ClasseGenerica istanzaClasse = New ClasseGenerica(id_classe_specifica)
istanzaClasse.metodoComuneDaEseguire()
Creo un'istanza della classe generica passando al costruttore della generica un parametro che identifichi la classe Specifica da creare...
Nel costruttore della Generica ci sara' uno Switch che creera' la giusta classe specifica.
In Questo modo potrei inglobare le due istruzioni in un metodo che in input prende il parametro che poi viene utilizzato dal Costruttore per identificare la classe da creare ed ottenere un metodo unico pre la creazione di tutte le classi specifiche.
SOLUZIONE 2)
ClasseGenerica.metodoComuneDaEseguire(New ClasseSpecifica())
"Disaccoppio" la classe Generica e quella Specifica in modo che quella Generica contenga un'istanza di quella specifica (una sorta di Decorator). quella generica la dichiaro statica e passo al metodo da eseguire l'istanza della classe specifica...
Non mi sono venute in mente altre soluzioni degne di nota...
Secondo Voi tra le due quale e' meglio???
Avete altre soluzioni Migliori???
Vi ringrazio in anticipo per l'aiuto...