คำอธิบายโหมดตัวแทน
หมายเหตุ: ตามที่ชื่อแนะนำมันคือการใช้คลาสหนึ่งเพื่อแทนที่คลาสอื่นเพื่อทำหน้าที่วิธีการ รูปแบบนี้ค่อนข้างคล้ายกับโหมดการตกแต่ง ความแตกต่างคือโหมดพร็อกซีแทนที่ไคลเอ็นต์เพื่อเริ่มต้นคลาสพร็อกซีวัตถุในขณะที่โหมดการตกแต่งจะดำเนินการโดยอินเทอร์เฟซหรืออ้างอิงถึงพารามิเตอร์ของมัณฑนากรเริ่มต้น
ในภาษาที่มุ่งเน้นวัตถุแบบไดนามิกโหมดพร็อกซีมีบทบาทในการควบคุมและปรับเปลี่ยนคลาสพร็อกซีและยังมีบทบาทที่ซ่อนอยู่และได้รับการปกป้องอย่างเต็มรูปแบบสำหรับคลาสพร็อกซี คลาสพร็อกซีนั้นเริ่มต้นทางอ้อมและเรียกว่าเมื่อเราต้องการเท่านั้น
คำอธิบายฉาก:
ตัวอย่างที่พบบ่อยมากในการเช่าบ้าน ผู้เช่าต้องการเช่าบ้านและเจ้าของบ้านต้องการเช่าบ้าน แต่ทั้งผู้เช่าหรือเจ้าของบ้านมีเวลามากในการหาบ้านหรือรอให้ใครบางคนเห็นบ้านที่บ้านดังนั้นพวกเขาจึงไปหาตัวแทนอสังหาริมทรัพย์ด้วยกัน เจ้าของบ้านมอบความไว้วางใจในห้องให้หน่วยงานเพื่อเช่าและขาย เมื่อมีบุคคลที่เหมาะสมตัวแทนจะเข้ามาดูและจ่ายเงินเพื่อเช่าเพื่อให้เจ้าของบ้านจะเช่าห้องออก ผู้เช่ามอบบ้านให้กับหน่วยงานเพื่อช่วยสถานที่ห้องพักที่หน่วยงานต้องการ หลังจากตัวแทนพบผู้เช่าทั้งสองจะจ่ายเงินเพื่อเช่าเพื่อให้ผู้เช่าสามารถเช่าไปยังสถานที่ที่เขาอาศัยอยู่
ซอร์สโค้ดอินสแตนซ์
ทำตามตัวอย่างข้างต้นเพื่อให้บรรลุ;
1. หมวดหมู่การเช่าเจ้าของบ้าน;
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น fangdong () {
this.room = 'ชื่อห้อง';
-
fangdong.prototype.chuzu = function () {
console.log ('เจ้าของที่ดินเช่าห้อง:' + this.room);
-
2. คลาสตัวแทนตัวกลาง:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นพร็อกซี () {
this.fangdong = New Fangdong ();
-
proxy.prototype.chuzu = function () {
this.fangdong.chuzu ();
console.log ('พกพาค่าธรรมเนียมตัวแทนหลังจากเช่า');
-
3. วิธีใช้:
การคัดลอกรหัสมีดังนี้:
// ผู้เช่าขอให้ตัวแทนช่วยหาบ้าน
var proxy = new proxy ();
Proxy.chuzu ();
ดูการใช้งานข้างต้น คลาสพร็อกซีไม่สามารถใช้งานได้ทั้งหมดในฝั่งไคลเอ็นต์ เพียงใช้คลาสพร็อกซีซึ่งสามารถใช้งานได้ดีในสถานการณ์ที่กระบวนการตรรกะทางธุรกิจบางอย่างจำเป็นต้องได้รับการปกป้อง การใช้โหมดพร็อกซีสามารถใช้งานได้ดีในคลาสพร็อกซีที่ต้องได้รับการปกป้อง
คำแนะนำอื่น ๆ
เช่นเดียวกับโหมดมัณฑนากรโหมดพร็อกซียังสะท้อนถึงหลักการของการคิดเชิงวัตถุที่เปิดกว้างต่อการขยายและการปรับเปลี่ยนการปิด
โหมดพร็อกซีคุณสามารถใช้อินเทอร์เฟซหรือคลาสนามธรรมเพื่อควบคุมอินเทอร์เฟซทั่วไป: (ต่อไปนี้มีโหมด Java Proxy)
1. บทคัดย่อคลาสบทคัดย่อ
การคัดลอกรหัสมีดังนี้:
Public Public Class House {
โมฆะสาธารณะบทคัดย่อ chuzu ();
-
ชั้นสาธารณะ Fangdong ขยายบ้าน {
ห้องสตริงส่วนตัว = "ชื่อห้อง";
@Override
โมฆะสาธารณะ Chuzu () {
System.out.println (ห้อง);
-
-
พร็อกซีระดับสาธารณะขยายบ้าน {
Private Fangdong Fangdong;
พร็อกซีสาธารณะ () {
this.fangdong = ใหม่ Hangdong ();
-
@Override
โมฆะสาธารณะ Chuzu () {
this.fandong.chuzu ();
System.out.println ("ค่าธรรมเนียมตัวแทนจ่ายหลังจากเช่า");
-
-
//ใช้
House House = New Proxy ();
house.chuzu ();
2. วิธีการอินเตอร์เฟส:
การคัดลอกรหัสมีดังนี้:
อินเตอร์เฟสเฮาส์ {
โมฆะสาธารณะ Chuzu ();
-
ชั้นสาธารณะ Fangdong ใช้บ้าน {
ห้องสตริงส่วนตัว = "ชื่อห้อง";
@Override
โมฆะสาธารณะ Chuzu () {
System.out.println (ห้อง);
-
-
พร็อกซีระดับสาธารณะใช้บ้าน {
Private Fangdong Fangdong;
พร็อกซีสาธารณะ () {
this.fangdong = ใหม่ Hangdong ();
-
@Override
โมฆะสาธารณะ Chuzu () {
this.fandong.chuzu ();
System.out.println ("ค่าธรรมเนียมตัวแทนจ่ายหลังจากเช่า");
-
-
//ใช้
House House = New Proxy ();
house.chuzu ();