Latest web development tutorials
×

设计模式 หลักสูตร

รูปแบบการออกแบบ รู้เบื้องต้นเกี่ยวกับรูปแบบการออกแบบ โหมดโรงงาน แบบโรงงานย่อ รูปแบบเดี่ยว รุ่นสร้าง รุ่นต้นแบบ อะแดปเตอร์รุ่น สะพานโหมด รูปแบบตัวกรอง โหมดการทำงานร่วมกัน มัณฑนากร รูปแบบซุ้ม ฟลายเวท โหมดพร็อกซี่ ห่วงโซ่ของรูปแบบความรับผิดชอบ โหมดคำสั่ง รูปแบบล่าม โหมดซ้ำแล้วซ้ำอีก รูปแบบที่เป็นสื่อกลาง รูปแบบของที่ระลึก รูปแบบการสังเกตการณ์ รูปแบบของรัฐ null Object Model โหมดกลยุทธ์ โหมดแม่แบบ รูปแบบของผู้เข้าชม MVC โหมด โหมดตัวแทน โหมดนิติบุคคลองค์ประกอบ รูปแบบการเข้าถึงข้อมูลของวัตถุ รูปแบบการควบคุมด้านหน้า intercepting รูปแบบตัวกรอง รูปแบบการบริการผู้แทนจำหน่าย วัตถุ Transfer รุ่น

设计模式其他

ทรัพยากรโหมดออกแบบ

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

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

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

การแนะนำ

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

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

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

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

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

ตัวอย่างการใช้งาน: 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