نمط (قالب) التفويض - لنلقِ نظرة على أبسط مثال. هناك فئة
А
مع بعض الأساليب 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();
}
}
يقوم الفصل В
بتفويض تنفيذ بعض المهام إلى فصل آخر. В
في هذه الحالة فئة А
.
GO TO FULL VERSION