Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Interfacce

  1. #1
    Utente di HTML.it L'avatar di z3n
    Registrato dal
    May 2008
    Messaggi
    61

    Interfacce

    Ciao a tutti,
    ho un dubbio riguardo il funzionamento delle interfacce in un caso specifico:
    ho una classe (Classe1) che ha i suoi attributi e metodi, ed all'interno di uno di questi, crea un'oggetto di tipo Classe2. Classe2 è un'interfaccia che specifica il comportamento con un certo tipo di oggetti. quello che voglio fare è far sì che Classe1 sia indipendente da Classe2, ossia che possa eseguire operazioni con un tipo diverso di oggetti. Pensavo di frapporre un'interfaccia tra Classe1 e Classe2 in modo che quando istanzio un oggetto, posso decidere se sia di tipo Classe2 o un'altra Classe (entrambe Interfacce). che ne pensate? suggerimenti?
    Spero di essermi spiegato in modo chiaro, se così non fosse fatemelo notare che cercherò di esprimermi meglio.
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Classe2 non è già un interfaccia?

    Magari prova a fare un esempio perché adesso non è proprio chiarissimo...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di z3n
    Registrato dal
    May 2008
    Messaggi
    61
    si, Classe2 è un'interfaccia...
    purtroppo non posso riportare codice perchè si tratta di codice sottoposto a Copryright, però proverò a scrivere un esempio:
    codice:
    import classe2;
    
    public class Classe1{
    attr1;
    attr2;
    ....
    
    
    public void m1(Object a){
    Classe2 c2=new Classe2();
    c2.metodoA();
    ....
    c2.metodoB();
    }
    }
    il mio obiettivo è rendere indipendente Classe1 da Classe2, ossia far sì che io possa sostituire Classe2 con un altra interfaccia.
    spero di aver chiarito l'obiettivo...

  4. #4
    Utente di HTML.it L'avatar di z3n
    Registrato dal
    May 2008
    Messaggi
    61
    Chiedo scusa ai moderatori per l'auto-risposta ma non mi è possible modificare il messaggio precedente:
    vorrei specificare una cosa che forse rende più chiaro ciò che devo fare:
    Classe2 è un'interfaccia tra Classe1 ed un certo tipo di oggetti (che chiamerò O1). Ora, quel che voglio fare è rendere indipendente Classe1 dal tipo di oggetti su cui lavora, cioè che sia possibile utilizzare altri oggetti (che chiamo O2).
    spero di aver chiarito ulteriormente il mio obiettivo...
    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Se vuoi che una classe possa fare qualche operazione su un oggetto deve pur sapere qualcosa sul suo tipo, altrimenti tutto quello che può fare è invocare i metodi di Object, coi quali ovviamente non vai lontano.

    Se l'interfaccia che hai creato è troppo specifica usane una più generica, però il metodo della tua classe deve lavorare su una specifica interfaccia, sta a te scegliere quale e quanto essa sia generica o specifica. Nella classe Classe1 hai un metodo che crea un oggetto e ci invoca i metodi metodo1 e metodo2? Bene, allora quel metodo creerà un oggetto il cui tipo sarà un'interfaccia contenente almeno i metodi metodo1 e metodo2. Più generico di così non puoi essere, è ovvio che il tipo su cui lavori debba almeno contenere le operazioni che vuoi fare.
    effeffe

  6. #6
    Utente di HTML.it L'avatar di z3n
    Registrato dal
    May 2008
    Messaggi
    61
    Ho capito cosa intendi, ma devo fare una precisazione: Classe1 appartiene ad un software (s1) che lavora con un certo tipo di oggetti, e per farlo, utilizza un software proprietario (sp) a cui appartiene Classe2. Quel che devo fare è prendere s1, separarlo dal software proprietario sp e sostituire sp con un'altro software per far sì che lavori con un'altro tipo di oggetti.

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Potresti applicare il pattern adapter

    http://www.oodesign.com/adapter-pattern.html
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it L'avatar di z3n
    Registrato dal
    May 2008
    Messaggi
    61
    sembra fare al caso mio! domani in mattinata provo a "studiare" bene il pattern e provo ad implementarlo, dopodichè vi faccio sapere! Grazie intanto per le risposte...

  9. #9
    Utente di HTML.it L'avatar di z3n
    Registrato dal
    May 2008
    Messaggi
    61
    Chiedo scusa ma ho toppato in pieno...Classe2 non è un'interfaccia ma una classe normalissima.
    ora, ho compreso lo scopo di Adapter e farebbe anche al mio caso se solo sapessi come implementarlo nel mio caso specifico...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.