Pattern (Template) ng Delegasyon - tingnan natin ang pinakasimpleng halimbawa. Mayroong isang klase
А
na may ilang pamamaraan f
. Ang isang klase А
ay isang panloob, hindi static na klase ng isang klase 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");
}
}
}
Pagkatapos ay ipi-print namin sa console kung ano ang ginagawa ng pamamaraan f
. main
Upang gawin ito, lumikha ng class object sa method А
at tawagan ang method f
. Ngayon likhain natin ang klase B
. Kailangan natin itong gawin katulad ng class А
, ngunit hindi natin idodoble ang code at hindi rin tayo gagamit ng inheritance, ngunit sa klase В
gagawa tayo ng object ng class А
, at pagkatapos ay В
tatawagin ang class method sa class method А
.
class B{
A a = new A();
void f(){
a.f();
}
}
Ang isang klase В
ay nagdelegate ng pagpapatupad ng ilang mga gawain sa isa pang klase. В
sa kasong ito klase А
.
GO TO FULL VERSION