23 messaggi dal 18 febbraio 2011
Salve,
ho 3 classi che derivano da una stessa interfaccia, quindi hanno stessi metodi che però lavorano in maniera diversa.
In uno switch case, a seconda del valore, dovrei dichiarare il tipo di oggetto, qualcosa tipo questo:
 
var Elaborazione = new object();           
switch (Valore.Tipologia)
            {
                case "VEGETALE":
                        Elaborazione = new ElaborazioneAnimali();
                    break;

                case "ANIMALE":
                        Elaborazione = new ElaborazioneVegetali();
                    break;

                case "ALIENO":
                        Elaborazione = new ElaborazioneAlieni();
                    break;

Elaborazione.chiamaPrimoMetodo();
Elaborazione.chiamaSecondoMetodo();


E' giusto come approccio? se si come modificare il codice in modo che funzioni, visto che la dichiarazione
var ElaborazioneIndici = new object();
chiaramente l'ho messa solo a scopo domostrativo?
Grazie
244 messaggi dal 22 gennaio 2017
Contributi
Potresti utilizzare un motore di Dependecy Injection per risolvere il problema.
Ad ogno modo, se volessi tenere l'approccio sotto specificato, forse ti converrebbe fare come segue:
public interface IElaborazione
{
 void chiamaPrimoMetodo();
 void chiamaSecondoMetodo();
}

public class ElaborazioneAnimali : IElaborazione
{
 ... implementazioni
}



IElaborazione Elaborazione;           
switch (Valore.Tipologia)
{
    case "VEGETALE":
        Elaborazione = new ElaborazioneAnimali();
        break;

    case "ANIMALE":
        Elaborazione = new ElaborazioneVegetali();
        break;
    case "ALIENO":
        Elaborazione = new ElaborazioneAlieni();
        break;
 }

23 messaggi dal 18 febbraio 2011
Perfetto, era quello che intendevo.
Grazie mille.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.