Modello (modello) di delega: consideriamo l'esempio più semplice. C'è una classe
А
con qualche metodo f
. Una classe А
è una classe interna e non statica di una classe My
.
public class My{
public static void main(String[]args){
My test = new My();
My.A a1 = test.new A();
a1.f();
My.B b = test.new B();
b.f();
}
class A{
void f(){
System.out.println("f");
}
}
}
Quindi stamperemo sulla console cosa fa il metodo f
. main
Per fare ciò, crea un oggetto classe nel metodo А
e chiama il metodo f
. Ora creiamo la classe B
. Abbiamo bisogno che faccia lo stesso della classe А
, ma non duplicheremo il codice e non utilizzeremo nemmeno l'ereditarietà, ma nella classe В
creeremo un oggetto della classe А
e quindi В
chiameremo il metodo della classe nel metodo della classe А
.
class B{
A a = new A();
void f(){
a.f();
}
}
Una classe В
delega l'esecuzione di alcuni compiti a un'altra classe. В
in questo caso classe А
.
GO TO FULL VERSION