Visualizzazione dei risultati da 1 a 3 su 3

Discussione: interfaccia e metodo

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    interfaccia e metodo

    ciao.
    Semplicemente:
    Ho una classe classA generica e una classB generica.
    La classA chiama un metodo sulla classB e passa se stesso alla classB.
    La classB quando ha finito deve richiamare un metodo sulla classA.
    Come posso gestire questo con le interfacce?
    Posso creare un interfaccia che ha il metodo da richiamare e farla implementare dalla classA?
    poi come chiamo il metodo sulla classA?
    codice:
    ((interfaccia)objclassA).metdodo //??????
    come è meglio fare secondo voi?
    Genericamente una classe che implementa un interfaccia non è un tipo di quell' interfaccia no?

    grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giuseppe500 Visualizza il messaggio
    Ho una classe classA generica e una classB generica.
    La classA chiama un metodo sulla classB e passa se stesso alla classB.
    La classB quando ha finito deve richiamare un metodo sulla classA.
    Come posso gestire questo con le interfacce?
    Posso creare un interfaccia che ha il metodo da richiamare e farla implementare dalla classA?
    Certo, le interfacce servono tipicamente per definire un "contratto". E quello che hai citato è un esempio che si può realizzare con una interfaccia per definire in modo più astratto un meccanismo di "callback".

    Tecnicamente l'esempio è:

    codice:
    public interface Callback {
        void notifica();
    }
    
    public class ClassA implements Callback {
        public void unMetodo() {
            ClassB b = new ClassB();
    
            b.lavoro(this);
        }
    
        public void notifica() {
            // ....
        }
    }
    
    public class ClassB {
        public void lavoro(Callback c) {
            // .....
            c.notifica();
        }
    }
    La classe ClassB non "sa" nulla di ClassA, sa solo di una interfaccia Callback. E siccome ClassA è-un Callback, la invocazione di lavoro passando this è corretta.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Certo, le interfacce servono tipicamente per definire un "contratto". E quello che hai citato è un esempio che si può realizzare con una interfaccia per definire in modo più astratto un meccanismo di "callback".

    Tecnicamente l'esempio è:

    codice:
    public interface Callback {
        void notifica();
    }
    
    public class ClassA implements Callback {
        public void unMetodo() {
            ClassB b = new ClassB();
    
            b.lavoro(this);
        }
    
        public void notifica() {
            // ....
        }
    }
    
    public class ClassB {
        public void lavoro(Callback c) {
            // .....
            c.notifica();
        }
    }
    La classe ClassB non "sa" nulla di ClassA, sa solo di una interfaccia Callback. E siccome ClassA è-un Callback, la invocazione di lavoro passando this è corretta.
    grazie.

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.