บทความนี้อธิบายการใช้โหมดบริดจ์เพื่อใช้ฟังก์ชั่นสวิตช์และแสงไฟ แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. คำจำกัดความรูปแบบ
โหมดบริดจ์หรือที่เรียกว่าโหมดบริดจ์ในระบบซอฟต์แวร์เนื่องจากตรรกะของตัวเองมีการเปลี่ยนแปลงสองมิติขึ้นไป วิธีจัดการกับการเปลี่ยนแปลงหลายมิติดังกล่าวโหมดบริดจ์ช่วยให้ระบบซอฟต์แวร์สามารถเปลี่ยนแปลงได้อย่างง่ายดายในหลายทิศทางโดยไม่ต้องแนะนำความซับซ้อนเพิ่มเติม
คำหลักสามคำของโหมดบริดจ์คือ: นามธรรมการใช้งานและการแยกออก
2. ตัวอย่างของแบบจำลอง
1. วิธีการวิเคราะห์โหมดบริดจ์
เรายืมแสงไฟเพื่อแสดงโหมดนี้
หากไม่มีการสืบทอดให้ใช้วิธีการรวมวัตถุเพื่อเปลี่ยนความสัมพันธ์ที่แน่นแฟ้นระหว่างสวิตช์และไฟให้กลายเป็นความสัมพันธ์ที่อ่อนแอ
2 โมเดลคลาสบริดจ์
3 ตัวอย่างรหัส
3.1 สร้างอินเทอร์เฟซไฟไฟฟ้า
แพ็คเกจ com.demo.bridge.lights;/** * อินเตอร์เฟสแสง * * @author * */อินเตอร์เฟสสาธารณะ ilight {// เปิดช่องว่างสาธารณะปัจจุบัน electricconnected (); // แสงโมฆะสาธารณะแสง (); // ปัจจุบันปิดโมฆะสาธารณะ electricclosed ();}3.2 สร้างสวิตช์ทั่วไป
แพ็คเกจ com.demo.bridge.switchs; นำเข้า com.demo.bridge.lights.ilight;/** * สลับคลาสระดับบนสุด * * @author * */คลาสสาธารณะ Baseswitch {// ใช้ชุดค่าผสมเพื่อตั้งค่า ilight เป็นแอตทริบิวต์ส่วนตัวภายใน // วิธีการสร้างฉีดชนิดแสงภายนอกลงในฐานสาธารณะ (แสงอิลไลท์) {this.light = แสง; } / *** วิธีการให้แสง* / โมฆะสุดท้ายสาธารณะ makelight () {// เปิดสวิตช์และเปิดปัจจุบัน this.light.electricconnected (); // แสงนี้ light.light (); // ปิดสวิตช์เพื่อปิดปัจจุบัน this.light.electricclosed (); -3.3 สร้างสวิตช์ระยะไกล
แพ็คเกจ com.demo.bridge.switchs.sub; นำเข้า com.demo.bridge.lights.ilight; นำเข้า com.demo.bridge.switchs.baseswitch;/** * สวิตช์ควบคุมระยะไกลสืบทอดฟังก์ชั่นส่วนขยาย Baseswitch * * @author * */คลาสสาธารณะ super (เบา); } / *** ใช้สวิตช์ควบคุมระยะไกลเพื่อควบคุมแสงเปิด** @Param OperatorColor* สีอ่อน* / โมฆะสุดท้ายโมฆะ makeremotelight (int operacolor) {// เปิดสวิตช์เพื่อเปิดกระแสไฟฟ้า // แสง this.light.light (); สตริงสี = ""; สวิตช์ (OperColor) {กรณีที่ 1: color = "สีอบอุ่น"; หยุดพัก; กรณีที่ 2: color = "blue"; หยุดพัก; กรณีที่ 3: สี = "แดง"; หยุดพัก; ค่าเริ่มต้น: color = "White"; หยุดพัก; } system.out.println ("... ตอนนี้คือ" + color + "!"); // ปิดสวิตช์เพื่อปิดกระแสไฟฟ้า this.light.electricclosed (); -3.4 การใช้หลอดไส้
แพ็คเกจ com.demo.bridge.lights.impl; นำเข้า com.demo.bridge.lights.ilight;/** * การใช้หลอดไส้ * * * @author * */คลาสสาธารณะที่มีการใช้งาน } // เปิดโมฆะสาธารณะปัจจุบัน ElectricConnected () {System.out.println ("หลอดไส้เปิด ... "); } // แสงโมฆะสาธารณะแสง () {system.out.println ("แสงไส้!"); -3.5 การใช้งานหลอดไฟคริสตัล
แพ็คเกจ com.demo.bridge.lights.impl; นำเข้า com.demo.bridge.lights.ilight;/** * การใช้งาน Crystallight * @author * */คลาสสาธารณะ Crystallight ใช้ Ilight {// ปัจจุบันปิดโมฆะสาธารณะ } // เปิดโมฆะสาธารณะปัจจุบัน electricConnected () {system.out.println ("เปิดผลึก ... "); } // แสงโมฆะสาธารณะแสง () {system.out.println ("ไฟโคมไฟคริสตัล!"); -3.6 หลอดไฟควบคุมทั่วไปหลอดไส้, สวิตช์ระยะไกลควบคุมโคมไฟคริสตัล
แพ็คเกจ com.demo; นำเข้า com.demo.bridge.lights.ilight; นำเข้า com.demo.bridge.lights.impl.crystallight; นำเข้า com.demo.bridge.lights.impl.incandescentlight; นำเข้า com.demo.bridge.switchs.baswitch; @author * */คลาสสาธารณะ clientforbridge {/** * @param args */โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// อินสแตนซ์อินสแตนซ์ ilight incandescentlight = new Incandescentlight (); // อินสแตนซ์ของหลอดไฟคริสตัล ilight crystallight = new crystallight (); // switch ทั่วไป system.out.println ("- สวิตช์ทั่วไป-"); Baseswitch switch1 = baseswitch ใหม่ (acandescentlight); switch1.makelight (); System.out.println ("/n-- สวิตช์ควบคุมระยะไกล-"); // สวิตช์รีโมทควบคุม RemoteControlswitch = ใหม่ RemoteControlswitch (Crystallight); RemoteControlswitch.makeremotelight (1); -ผลการทำงาน:
- สวิตช์ทั่วไป-
หลอดไส้เปิดอยู่ ...
หลอดไฟหลอดไส้!
หลอดไส้ถูกปิด ...
- สวิตช์รีโมทควบคุม-
โคมไฟคริสตัลเปิดอยู่ ...
ไฟโคมไฟคริสตัล!
... ตอนนี้อบอุ่น!
โคมไฟคริสตัลถูกปิด ...
3.7 สวิตช์ทั่วไปการควบคุมโคมไฟคริสตัล, สวิตช์รีโมทควบคุมหลอดไฟหลอดไส้
แพ็คเกจ com.demo; นำเข้า com.demo.bridge.lights.ilight; นำเข้า com.demo.bridge.lights.impl.crystallight; นำเข้า com.demo.bridge.lights.impl.incandescentlight; นำเข้า com.demo.bridge.switchs.baswitch; @author * */คลาสสาธารณะ clientforbridge {/** * @param args */โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// encandescentlight ตัวอย่าง ilight incandescentlight = new Incandescentlight (); // ตัวอย่างหลอดไฟคริสตัล ilight crystallight = new crystallight (); // switch ทั่วไป system.out.println ("- สวิตช์ทั่วไป-"); baseswitch switch1 = baseswitch ใหม่ (Crystallight); switch1.makelight (); System.out.println ("/n-- สวิตช์ควบคุมระยะไกล-"); // สวิตช์รีโมทควบคุม RemoteControlswitch = ใหม่ RemoteControlswitch (ancandescentlight); RemoteControlswitch.makeremotelight (1); -การรันผลลัพธ์
- สวิตช์ทั่วไป-
โคมไฟคริสตัลเปิดอยู่ ...
ไฟโคมไฟคริสตัล!
โคมไฟคริสตัลถูกปิด ...
- สวิตช์รีโมทควบคุม-
หลอดไส้เปิดอยู่ ...
หลอดไฟหลอดไส้!
... ตอนนี้อบอุ่น!
หลอดไส้ถูกปิด ...
3. หลักการออกแบบ
1 พยายามใช้การรวมวัตถุของการเชื่อมโยงที่อ่อนแอและหลีกเลี่ยงการใช้การเชื่อมโยงการสืบทอดที่แข็งแกร่ง
2 นามธรรมและการใช้งาน decoupling
4. ใช้โอกาส
1 ไม่ต้องการความสัมพันธ์ที่มีผลผูกพันคงที่ระหว่างคลาสนามธรรมและส่วนการใช้งาน
ส่วนที่เป็นนามธรรมและการใช้งานของ 2 คลาสควรขยายผ่านวิธีการปิดเสียง
3 การแก้ไขส่วนการใช้งานนามธรรมไม่ส่งผลกระทบต่อลูกค้านั่นคือรหัสลูกค้าไม่จำเป็นต้องมีการคอมไพล์ใหม่
5. ไดอะแกรมคลาสสแตติกโหมดสแตติก
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน