โหมดพร็อกซี่

ในโหมดพร็อกซี่ (ลายพร็อกซี) ชั้นเรียนของฟังก์ชั่นในนามของชั้นอื่น ประเภทของรูปแบบการออกแบบนี้เป็นรูปแบบโครงสร้าง

ในโหมดพร็อกซี่ที่เราสร้างวัตถุกับวัตถุที่มีอยู่ในการสั่งซื้อเพื่อให้อินเตอร์เฟซที่ใช้งานได้กับโลกภายนอก

การแนะนำ

เจตนา: เพื่อให้เป็นตัวแทนในการควบคุมการเข้าถึงวัตถุนี้วัตถุอื่น ๆ

มติหลัก: การเข้าถึงโดยตรงไปยังวัตถุที่ก่อให้เกิดปัญหาเช่นวัตถุที่คุณต้องการเข้าถึงบนเครื่องระยะไกลในระบบเชิงวัตถุวัตถุบางอย่างด้วยเหตุผลบางอย่าง (เช่นสร้างวัตถุที่มีราคาแพงหรือการกระทำบางอย่างจำเป็นต้องควบคุมความปลอดภัยหรือการเข้าถึงนอกกระบวนการ) ก็จะให้ผู้ใช้สามารถเข้าถึงโดยตรงกับการกำหนดค่าระบบหรือเปลืองใจ, เราสามารถเพิ่มชั้นการเข้าถึงวัตถุนี้ในช่วงเวลาของการเข้าถึงวัตถุนี้

เมื่อใช้: เมื่อคุณต้องการที่จะทำบางสิ่งบางอย่างเพื่อควบคุมการเข้าถึงชั้นเรียน

วิธีการแก้ไข: เพิ่มชั้นกลาง

คีย์รหัส: การเชื่อมโยงกับชุดชั้นพร็อกซี่

ตัวอย่างการใช้งาน: 1, Windows ลัดภายใน2 หมูไปเปลี่ยนแปลงผลลิง Cuilan สูงสามารถเข้าใจได้: ลักษณะ Cuilan สูงใจลอยสูงมีสีเขียวขุ่นสีฟ้าผมและลิงใช้อินเตอร์เฟซนี้หมูเข้าถึง Cuilan สูงเมื่อไม่เห็นพระมหากษัตริย์ลิงเพื่อให้ Monkey King เป็น Cuilan สูง ระดับพร็อกซี่ 3 ไม่จำเป็นต้องซื้อตั๋วรถไฟที่สถานีที่จะซื้อคุณยังสามารถไปที่ร้านค้า 4 การตรวจสอบหรือใบรับรองของเงินฝากธนาคารเป็นเงินในบัญชีพร็อกซี่ การทำธุรกรรมตรวจสอบในตลาดที่มีการใช้แทนเงินสดและให้การควบคุมบัญชีทุนของ บริษัท ผู้ออกหลักทรัพย์ 5 AOP ฤดูใบไม้ผลิ

ข้อดี: 1, ความรับผิดชอบที่ชัดเจน2 ความยืดหยุ่นสูง 3, ฉลาด

ข้อเสีย: 1 เช่นระหว่างลูกค้าและรูปแบบที่แท้จริงว่าวัตถุพร็อกซี่เพื่อให้ชนิดของโหมดพร็อกซี่บางคนอาจส่งผลให้เกิดการร้องขอการประมวลผลความเร็วช้าลง2 เพื่อให้บรรลุโหมดพร็อกซี่ต้องทำงานเพิ่มเติมเพื่อให้บรรลุโหมดพร็อกซี่บางอย่างที่ซับซ้อนมาก

สถานการณ์การใช้งาน: ตามการแบ่งความรับผิดชอบมักจะมีสถานการณ์การใช้งานดังต่อไปนี้: 1, ตัวแทนระยะไกล2. การแจ้งเตือน 3 ตัวแทนคัดลอกบนเขียน 4, การป้องกัน (ป้องกันหรือ Access) ตัวแทน 5 ตัวแทนแคช 6 ไฟร์วอลล์ (Firewall) ตัวแทน 7 โครไนซ์ (Synchronization) ตัวแทน 8 อ้างอิงอัจฉริยะ (Smart อ้างอิง) ตัวแทน

หมายเหตุ: ความแตกต่างระหว่าง 1 และอะแดปเตอร์โหมด: การเปลี่ยนแปลงที่สำคัญรูปแบบอะแดปเตอร์ไตร่ตรองอินเตอร์เฟซของวัตถุและโหมดพร็อกซี่ไม่สามารถเปลี่ยนแปลงได้โดยตัวแทนของอินเตอร์เฟซชั้นเรียนความแตกต่างระหว่าง 2 และมัณฑนากรรูปแบบ: มัณฑนากรในการเพิ่มประสิทธิภาพการทำงานและโหมดพร็อกซี่คือการได้รับการควบคุม

การสำนึก

เราจะสร้างภาพอินเตอร์เฟซและการดำเนินงานของอินเตอร์เฟซภาพเรียนนิติบุคคลProxyImage เป็นชั้นพร็อกซี่ลดวัตถุรอยหน่วยความจำRealImageโหลด

ProxyPatternDemo เราแสดงให้เห็นถึงการใช้งานของระดับProxyImageที่จะได้รับภาพวัตถุที่จะโหลดและแสดงผลตามความต้องการ

รูปแบบหนังสือมอบฉันทะแผนภาพ UML

ขั้นตอนที่ 1

สร้างอินเตอร์เฟซ

Image.java

อินเตอร์เฟซที่สาธารณะภาพ {
   จอแสดงผลเป็นโมฆะ ();
}

ขั้นตอนที่ 2

สร้างคลาสนิติบุคคลที่ใช้อินเตอร์เฟซ

RealImage.java

เรียนสาธารณะ RealImage ใช้ภาพ {

   ชื่อไฟล์ String เอกชน

   RealImage สาธารณะ (String fileName) {
      this.fileName = ชื่อไฟล์;
      loadFromDisk (ชื่อไฟล์);
   }

   @Override
   จอแสดงผลโมฆะสาธารณะ () {
      System.out.println ( "แสดง" + fileName);
   }

   เป็นโมฆะ loadFromDisk ส่วนตัว (String fileName) {
      System.out.println ( "โหลด" + fileName);
   }
}

ProxyImage.java

เรียนสาธารณะ ProxyImage ใช้ภาพ {

   ส่วนตัว RealImage realImage;
   ชื่อไฟล์ String เอกชน

   ProxyImage สาธารณะ (String fileName) {
      this.fileName = ชื่อไฟล์;
   }

   @Override
   จอแสดงผลโมฆะสาธารณะ () {
      ถ้า (realImage == null) {
         realImage = ใหม่ RealImage (ชื่อไฟล์);
      }
      realImage.display ();
   }
}

ขั้นตอนที่ 3

เมื่อมีการร้องขอใช้ProxyImageที่จะได้รับวัตถุชั้นRealImage

ProxyPatternDemo.java

เรียนสาธารณะ ProxyPatternDemo {
	
   ประชาชนเป็นโมฆะคง main (String args []) {
      ภาพภาพ = ProxyImage ใหม่ ( "test_10mb.jpg");

      // โหลดภาพจาก image.display ดิสก์ (); 
      System.out.println ( "");
      // แสดงสินค้าไม่สามารถโหลดได้จาก image.display ดิสก์ (); 	
   }
}

ขั้นตอนที่ 4

ตรวจสอบการส่งออก

กำลังโหลด test_10mb.jpg
แสดง test_10mb.jpg

แสดง test_10mb.jpg