Polimorfismo

di Anonimizzato3216 il
4 risposte
Ho la necessità di creare una classe che si deve occupare della creazione un file txt. I dati da inserire nel file txt devono essere prelevati utilizzando due classi differenti ma che sostanzialmente tirano fuori dei tipi di dati uguali ma da fonti diverse.
Ora vorrei evitare nella classe principale di controllare ogni volta da quale classe si stanno recuperando i dati tipo:
if(oggetto1)
classe1
else if(oggetto2)
classe2

Qualcuno ha qualche suggerimento?

4 Risposte

  • io74 ha scritto:


    Ho la necessità di creare una classe che si deve occupare della creazione un file txt. I dati da inserire nel file txt devono essere prelevati utilizzando due classi differenti ma che sostanzialmente tirano fuori dei tipi di dati uguali ma da fonti diverse.
    Ora vorrei evitare nella classe principale di controllare ogni volta da quale classe si stanno recuperando i dati tipo:
    if(oggetto1)
    classe1
    else if(oggetto2)
    classe2

    Qualcuno ha qualche suggerimento?
    Direi che puoi risolvere con un semplice overload del metodo di scrittura:
    
    Class MyWriteFileClass{
             .........
             public void writeFile (Class1 class1){
                      ......
             }
    
             public void writeFile (Class2 class2){
                      .......
             }
             ......
    }
    
  • A cosa ti serve sapere da che classe stai prelevando i dati?
  • Devo conoscere la classe da dove prelevare i dati, per richiamare i rispettivi metodi perché non hanno sempre lo stesso nome, ed inoltre alcuni metodi ritornano dati strutturalmente diversi che poi devo normalizzare in base alla classe che li ha restituiti.
  • Allora come suggerito da ttrash la cosa più semplice è fare l'overload del metodo di scrittura
Devi accedere o registrarti per scrivere nel forum
4 risposte