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