พร็อกซี Java รวมถึงพร็อกซีไดนามิก jdk และพร็อกซี cglib ในที่นี้เราจะพูดถึงเฉพาะพร็อกซีไดนามิก jdk เท่านั้น โดยส่วนใหญ่ใช้กลไกการสะท้อนกลับของ java (นั่นคือ แพ็คเกจ java.lang.reflect)
หลักการคือ (นักร้องและผู้จัดการเป็นตัวอย่าง):
สร้างอินเทอร์เฟซสาธารณะ เช่น นักร้องอินเทอร์เฟซสาธารณะ นักร้อง;
ใช้คลาสเฉพาะเพื่อใช้งานอินเทอร์เฟซ เช่น Jay Chou เขาเป็นนักร้อง ดังนั้นเขาจึงใช้คลาส Singer คลาส MySinger ใช้งาน Singer
สร้างคลาสตัวแทนซึ่งเป็นนายหน้าที่นี่ เขาจำเป็นต้องใช้คลาส InvocationHandler และเขียนวิธีการเรียกใช้ใหม่ เพื่อว่าเมื่อมีบางอย่างเกิดขึ้นและคุณต้องการค้นหา Jay Chou (คลาสคอนกรีต) คุณต้องไปที่นายหน้าก่อน (คลาสตัวแทน ) เพื่อจัดการมัน ตัวแทนกำลังตัดสินใจว่าจะพบกับคุณหรือไม่ (ไม่ว่าจะดำเนินการตามวิธีนี้หรือไม่)
1. อินเทอร์เฟซนักร้อง
โมฆะนามธรรมสาธารณะร้องเพลง ();
สตริงนามธรรมสาธารณะ s();
-
//ผูก
การผูกวัตถุสาธารณะ (เป้าหมายวัตถุ) {
this.target=เป้าหมาย;
//ต้องใส่พร็อกซีกลับคืน
กลับ Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces() นี้);
-
//อีกครั้ง
การเรียกใช้วัตถุสาธารณะ (พร็อกซีวัตถุ, วิธีการวิธีการ, วัตถุ [] args)
ขว้างได้ ขว้างได้ {
วัตถุ o =null;
System.out.println("เริ่มการทำธุรกรรม");
System.out.println("การอนุญาตของผู้พิพากษา");
o = method.inviving(target, args);//วิธีการดำเนินการ
System.out.println("สิ้นสุดการทำธุรกรรม");
กลับหรือ;
-
-