Паттерн (Шаблон) Делегирования — рассмотрим на самом простом примере.
Есть класс
А с каким-то методом 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();
}
}
Класс В делегирует выполнение каких-то задач другому классу. В данном случае классу А.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ