نسخة الكود كما يلي:
استيراد java.lang.reflect.invocationHandler ؛
استيراد java.lang.reflect.method ؛
استيراد java.lang.reflect.proxy ؛
الطبقة العامة loghandler تنفذ invocationHandler {
كائن خاص مندوب ؛
كائن عام ربط (كائن مندوب) {
this.delegate = مندوب ؛
return proxy.newproxyinstance (depegate.getClass (). getClassloader () ،
depegate.getClass (). getInterfaces () ، هذا) ؛
}
@تجاوز
استدعاء الكائن العام (وكيل الكائن ، طريقة الطريقة ، الكائن [] args)
رميات قابلة للتطبيق {
نتيجة الكائن = فارغة ؛
يحاول {
System.out.println ("Method Start:" + method) ؛
النتيجة = method.invoke (مندوب ، args) ؛
System.out.println ("Method End:" + method) ؛
} catch (استثناء e) {
E.PrintStackTrace () ؛
}
نتيجة العودة
}
}
نسخة الكود كما يلي:
الواجهة العامة Animal {
void public hello () ؛
}
Dynamic Proxy هو شكل ممتد من نموذج الوكيل ويستخدم على نطاق واسع في تصميم وتطوير الأطر (وخاصة الأطر القائمة على AOP).
نسخة الكود كما يلي:
قرد الطبقة العامة ينفذ الحيوان {
@تجاوز
void public hello () {
// TODO METHOTION METTOD COBS
System.out.println ("Hello") ؛
}
}
نسخة الكود كما يلي:
الطبقة العامة الرئيسية {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
logHandler loghandler = new loghandler () ؛
Animal Animal = (Animal) loghandler.bind (New Monkey ()) ؛
Animal.Hello () ؛
}
}