Паттерн (Шаблон) Делегування – розглянемо на найпростішому прикладі. Є клас
А
із якимось методом f
. Клас А
- це внутрішній не статичний клас класу 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");
}
}
}
Потім виведемо на консоль те, що робить метод f
. Для цього в методі main
створюємо об'єкт класу А
та викликаємо метод f
. Тепер створимо клас B
. Нам потрібно, щоб він робив те саме, що і клас А
, але дублювати код ми не будемо і використовувати спадкування теж не будемо, а в класі В
створимо об'єкт класу А
, а потім у методі класу В
викличемо метод класу А
.
class B{
A a = new A();
void f(){
a.f();
}
}
Клас В
делегує виконання якихось завдань іншому класу. В
даному випадку класу А
.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ