การคัดลอกรหัสมีดังนี้:
นำเข้า java.lang.reflect.invocationhandler;
นำเข้า java.lang.reflect.method;
นำเข้า java.lang.reflect.proxy;
Loghandler ชั้นเรียนสาธารณะใช้ InvocationHandler {
ผู้แทนวัตถุส่วนตัว;
วัตถุสาธารณะผูก (ตัวแทนวัตถุ) {
this.delegate = มอบหมาย;
ส่งคืน proxy.newproxyinstance (delegate.getClass (). getClassLoader ()
delegate.getClass (). getInterfaces (), สิ่งนี้);
-
@Override
วัตถุสาธารณะเรียกใช้ (พร็อกซีวัตถุวิธีวิธีการวัตถุ [] args)
โยนได้ {
ผลลัพธ์ของวัตถุ = null;
พยายาม {
System.out.println ("วิธีการเริ่มต้น:" + วิธี);
result = method.invoke (ผู้แทน, args);
System.out.println ("Method End:" + Method);
} catch (Exception e) {
E.PrintStackTrace ();
-
ผลการกลับมา;
-
-
การคัดลอกรหัสมีดังนี้:
สัตว์อินเทอร์เฟซสาธารณะ {
โมฆะสาธารณะสวัสดี ();
-
Dynamic Proxy เป็นรูปแบบที่ขยายออกไปของโมเดลพร็อกซีและใช้กันอย่างแพร่หลายในการออกแบบและพัฒนาเฟรมเวิร์ก (โดยเฉพาะเฟรมเวิร์กตาม AOP)
การคัดลอกรหัสมีดังนี้:
ลิงชั้นสาธารณะใช้สัตว์ {
@Override
โมฆะสาธารณะสวัสดี () {
// todo วิธีการที่สร้างขึ้นอัตโนมัติสตับ
System.out.println ("สวัสดี");
-
-
การคัดลอกรหัสมีดังนี้:
ชั้นเรียนสาธารณะหลัก {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
loghandler loghandler = new loghandler ();
สัตว์สัตว์ = (สัตว์) loghandler.bind (ใหม่ลิง ());
Animal.hello ();
-
-