บทความนี้อธิบายฟังก์ชั่นอะแดปเตอร์พลังงานในแอปพลิเคชันโหมดอะแดปเตอร์ Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. คำจำกัดความรูปแบบ
มีสองโหมดอะแดปเตอร์
1 โหมดอะแดปเตอร์วัตถุในโหมดอะแดปเตอร์นี้อะแดปเตอร์ถือเอนทิตีทางกายภาพของวัตถุคลาสที่ห่อหุ้ม
โหมดอะแดปเตอร์คลาส 2 ในโหมดอะแดปเตอร์นี้อะแดปเตอร์สืบทอดมาจากคลาสที่ใช้งาน
2. ตัวอย่างของแบบจำลอง
1 การวิเคราะห์รูปแบบ
เรายืมอะแดปเตอร์พลังงานดินสอเพื่อแสดงโหมดนี้
อะแดปเตอร์แล็ปท็อปพลังงาน AC ที่มีอยู่แล้ว
2 การสร้างแบบจำลองแบบคงที่ของโหมดอะแดปเตอร์
3 ตัวอย่างรหัส
3.1 การจัดตั้งแหล่งจ่ายไฟนามธรรม
แพ็คเกจ com.demo.power;/** * คลาสฐานพลังงาน * * @author * */บทคัดย่อคลาสสาธารณะ absbasepower {// ค่าแรงดันไฟฟ้าพลังการลอยตัวส่วนตัว; // หน่วยสตริงส่วนตัว = "v"; // วิธีการสร้าง absbasepower สาธารณะ (พลังลอย) {this.power = power; } public float getpower () {พลังคืน; } โมฆะสาธารณะ setpower (พลังลอย) {this.power = power; } สตริงสาธารณะ getUnit () {หน่วยส่งคืน; } โมฆะสาธารณะ setUnit (หน่วยสตริง) {this.unit = หน่วย; -3.2 220V อินเทอร์เฟซพลังงาน
แพ็คเกจ com.demo.power.v220;/** * 220V อินเตอร์เฟสพลังงาน * * * @author * */ส่วนต่อประสานสาธารณะ ipower220 {// 220V AC แหล่งจ่ายไฟการพิมพ์โมฆะสาธารณะเอาท์พุท 220V ();};3.3 ระดับการใช้งานแหล่งจ่ายไฟ 220V
แพ็คเกจ com.demo.power.v220; นำเข้า com.demo.power.absbasepower;/** * 220V แหล่งจ่ายไฟ * * * @author * */ระดับสาธารณะ POWER220 ขยาย AbsbasePower ใช้ iPower220 {// // วิธีการสร้าง POWER220 () {Super (220); } // 220V กำลังไฟโมฆะโมฆะเอาท์พุท 2220V () {System.out.println ("---- นี่คือ [" + this.getPower () + this.getUnit () + "] พลังงาน!"); -3.4 12V อินเทอร์เฟซพลังงาน
แพ็คเกจ com.demo.power.v12;/** * 12v อินเตอร์เฟสพลังงาน * * @author * */อินเตอร์เฟสสาธารณะ ipower12 {// 12v แหล่งจ่ายไฟการพิมพ์โมฆะสาธารณะเอาท์พุท 12V ();}3.5 12V การใช้งานแหล่งจ่ายไฟ
แพ็คเกจ com.demo.power.v12; นำเข้า com.demo.power.absbasepower;/** * แหล่งจ่ายไฟ 12V ปกติ * * @author * */POWER ระดับสาธารณะ POWER12 ขยาย ABSBASEPower ใช้ iPower12 {// 12V แหล่งจ่ายไฟ } // 12V กำลังไฟโมฆะโมฆะเอาท์พุท 12V () {System.out.println ("--- นี่คือ [" + this.getPower () + this.getUnit () + "] พลังงาน!"); -3.6 12V อะแดปเตอร์วัตถุไฟฟ้า
แพ็คเกจ com.demo.adapter; นำเข้า com.demo.power.absbasepower; นำเข้า com.demo.power.v12.ipower12;/** * อะแดปเตอร์พลังงาน (ใช้อินเทอร์เฟซวัตถุเป้าหมายคือ: 12V อินเตอร์เฟสพลังงาน) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // วิธีการก่อสร้างอะแดปเตอร์ส่งผ่านวัตถุที่จะถูกแปลงเป็นอะแดปเตอร์พาวเวอร์สาธารณะ 12 (absbasepower absbasepower) {this.absbasepower = absbasepower; } // ใช้วิธีการวัตถุเป้าหมายโมฆะโมฆะเอาท์พุท 12V () {// รับค่าพลังงานภายนอก float powerfloat = this.absbasepower.getPower (); // ดำเนินการแปลงพลังงานถ้า (powerfloat == 380) {// 380V การแปลงพลังงาน powerfloat = powerfloat / 31.67f; } อื่นถ้า (powerfloat == 220) {// 220V การแปลงพลังงาน powerfloat = powerfloat / 18.33f; } อื่นถ้า (powerfloat == 110) {// 110V การแปลงพลังงาน powerfloat = powerfloat / 9.17f; } else {system.out.println ("---- ไม่สามารถปรับให้เข้ากับพลังได้!"); กลับ; } // ประมวลผลผลลัพธ์การแปลง powerfloat = (int) (powerfloat * 10) / 10.0f; System.out.println ("---- นี่คือ [" + powerfloat + this.absbasepower.getUnit () + "] พลัง! ... "); -3.7 12V อะแดปเตอร์พลังงาน
แพ็คเกจ com.demo.adapter; นำเข้า com.demo.power.absbasepower; นำเข้า com.demo.power.v12.ipower12;/** * อะแดปเตอร์พลังงาน (ใช้อินเทอร์เฟซวัตถุเป้าหมายคือ: 12V Power Interface) ผ่านวัตถุที่จะถูกแปลงเป็น adapterpower สาธารณะ 12ext (absbasepower absbasepower) {super (absbasepower.getpower ()); } // ใช้วิธีวัตถุเป้าหมาย @Override โมฆะสาธารณะเอาท์พุท 12V () {// รับค่าพลังงานภายนอก float powerfloat = this.getPower (); // ดำเนินการแปลงพลังงานถ้า (powerfloat == 380) {// 380V การแปลงพลังงาน powerfloat = powerfloat / 31.67f; } อื่นถ้า (powerfloat == 220) {// 220V การแปลงพลังงาน powerfloat = powerfloat / 18.33f; } อื่นถ้า (powerfloat == 110) {// 110V การแปลงพลังงาน powerfloat = powerfloat / 9.17f; } else {system.out.println ("---- ไม่สามารถปรับให้เข้ากับพลังได้!"); กลับ; } // ประมวลผลผลลัพธ์การแปลง powerfloat = (int) (powerfloat * 10) / 10.0f; System.out.println ("---- นี่คือ [" + powerfloat + this.getUnit () + "] พลัง! ... "); -3.8 อะแดปเตอร์ทดสอบ
แพ็คเกจ com.demo; นำเข้า com.demo.adapter.adapterpower12; นำเข้า com.demo.adapter.adapterpower12ext; นำเข้า com.demo.power.v12.ipower12; นำเข้า com.demo.power.v12.power12; / ** * @param args * / โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// เราสร้างวัตถุแหล่งจ่ายไฟ 220V! POWER220 POWER220 = New Power220 (); Power220.Output220V (); // ถัดไปเรากำลังสร้างวัตถุจ่ายไฟ 12V! ipower12 power12 = ใหม่ power12 (); power12.Output12V (); // ในที่สุดเราใช้อะแดปเตอร์พลังงานเพื่อแปลงแหล่งจ่ายไฟ 220V เป็นแหล่งจ่ายไฟ 12V! System.out.println ("/n ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - System.out.println ("----- การแปลงอะแดปเตอร์พาวเวอร์คลาสสิ้นสุดลง!");}}3.9 ผลการดำเนินงาน
---- นี่คือแหล่งจ่ายไฟ [220.0V]! -
---- นี่คือแหล่งจ่ายไฟ [12.0V]! -
---- อะแดปเตอร์กำลังถูกแปลง ...
---- นี่คือแหล่งจ่ายไฟ [12.0V]! -
--- การแปลงอะแดปเตอร์พลังงานสิ้นสุดลงแล้ว!
---- อะแดปเตอร์พลังงานอะแดปเตอร์กำลังถูกแปลง ...
---- นี่คือแหล่งจ่ายไฟ [12.0V]! -
---- การแปลงอะแดปเตอร์อะแดปเตอร์คลาสจะสิ้นสุดลง!
3. หลักการออกแบบ
1 ใช้การรวมวัตถุ
หลักการ 2 "เปิดและปิด"
4. ใช้โอกาส
1 เมื่อโครงสร้างระบบซอฟต์แวร์จำเป็นต้องได้รับการอัพเกรดหรือขยายและไม่ต้องการส่งผลกระทบต่อการทำงานที่มั่นคงของระบบดั้งเดิม
2 เมื่อความแตกต่างระหว่างคลาสการแปลงไม่ใหญ่มาก
3 เมื่อคุณต้องการสร้างคลาสที่ใช้ซ้ำได้ซึ่งสามารถทำงานร่วมกับชั้นเรียนอื่น ๆ ที่ไม่เกี่ยวข้องหรือไม่สามารถคาดเดาได้
5. แผนภาพคลาสคงที่ของโหมดอะแดปเตอร์คลาสและโหมดอะแดปเตอร์วัตถุ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน