Wzór (szablon) delegowania - spójrzmy na najprostszy przykład. Istnieje klasa
А
z pewną metodą f
. Klasa А
jest wewnętrzną, niestatyczną klasą klasy 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");
}
}
}
Następnie wypiszemy na konsoli, co robi dana metoda f
. main
Aby to zrobić, utwórz obiekt klasy w metodzie А
i wywołaj metodę f
. Teraz utwórzmy klasę B
. Potrzebujemy go, aby zrobił to samo co klasa А
, tyle że nie będziemy powielać kodu i nie będziemy też korzystać z dziedziczenia, ale w klasie stworzymy В
obiekt klasy А
, a następnie В
wywołamy metodę klasy w metodzie klasy А
.
class B{
A a = new A();
void f(){
a.f();
}
}
Klasa В
deleguje wykonanie niektórych zadań innej klasie. В
w tym przypadku klasa А
.
GO TO FULL VERSION