วิธีการใช้การเชื่อมโยงแบบไดนามิกใน Java?

Withi Kar Chi Kar Cheuxm Yong Baeb Dinamik Ni Java



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

บล็อกนี้สาธิตการใช้งานและการปรับใช้การเชื่อมโยงแบบไดนามิกใน Java

วิธีการใช้การเชื่อมโยงแบบไดนามิกใน Java?

การเชื่อมโยงแบบไดนามิกช่วยให้การมีเพศสัมพันธ์ระหว่างวัตถุหลวม ช่วยในการขยายฟังก์ชันการทำงานได้ง่ายโดยการเพิ่มคลาสย่อยใหม่ที่แทนที่เมธอดโดยไม่ต้องแก้ไขโค้ดที่มีอยู่ การเชื่อมโยงแบบไดนามิกใช้กันอย่างแพร่หลายสำหรับการจัดส่งรันไทม์ การจัดการเหตุการณ์ หรือระบบปลั๊กอิน







ให้เราพิจารณาตัวอย่างสองสามตัวอย่างสำหรับคำอธิบายโดยละเอียด:



ตัวอย่างที่ 1: การใช้การเชื่อมโยงแบบไดนามิก



ด้วยการใช้การเชื่อมโยงแบบไดนามิก โปรแกรมเมอร์สามารถอนุญาตให้ผู้ใช้ปรับแต่งและแทนที่พฤติกรรมเริ่มต้นเพื่อสร้างแอปพลิเคชันที่ปรับแต่งได้ สำหรับการใช้งานจริง ให้เราอธิบายตัวอย่าง:





นำเข้า java.util.Arrays;
นำเข้า java.util.HashSet;
นำเข้า java.util.List;
นำเข้า java.util.Set;

DynBind คลาสสาธารณะ {
โมฆะสาธารณะคงหลัก ( สตริง [ ] หาเรื่อง ) {
การเล่นเกม gameType1 = คริกเก็ตใหม่ ( ) ;
การเล่นเกม gameType2 = CallofDuty ใหม่ ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
การเล่นเกมระดับ {
ประเภทเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'เกมจริงหรือเกมเสมือนจริง' ) ;
}
}
คริกเก็ตคลาสขยายการเล่นเกม {
@ แทนที่
ประเภทเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'คริกเก็ตเป็นเกมทางกายภาพ' ) ;
}
}
คลาส CallofDuty ขยายการเล่นเกม {
@ แทนที่
ประเภทเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'CallofDuty เป็นเกมเสมือนจริง' ) ;
}
}

คำอธิบายของรหัสด้านบน:



  • อันดับแรก คลาส “ DynBind ” ถูกสร้างขึ้น และสองวัตถุประเภท “ การเล่นเกม ” มีการประกาศ
  • ถัดไป วัตถุเหล่านี้จะเริ่มต้นใหม่ด้วย “ คริกเก็ต ' และ ' คอลออฟดิวตี้ ” วัตถุ การเริ่มต้นนี้แสดงให้เห็นถึงการเชื่อมโยงแบบไดนามิก ประเภทการอ้างอิงคือ “ การเล่นเกม ” แต่ประเภทวัตถุจริงคือ “ คริกเก็ต ' และ ' คอลออฟดิวตี้ ” ตามลำดับ
  • ขณะนี้ วัตถุเหล่านี้ถูกใช้เพื่อเรียกใช้ ' ประเภทเกม() ” ฟังก์ชันโดยการแทนที่ฟังก์ชันในคลาสย่อย
  • จากนั้นผู้ปกครอง “ การเล่นเกม ” คลาสถูกประกาศซึ่งสร้างและเริ่มต้น “ ประเภทเกม() ” ซึ่งพิมพ์ข้อความจำลอง
  • ถัดไป คลาสย่อย 2 คลาสจะถูกสร้างขึ้นโดยใช้ชื่อ “ คริกเก็ต ' และ ' คอลออฟดิวตี้ '. คลาสเหล่านี้สืบทอดมาจากพาเรนต์ “ การเล่นเกม ' ระดับ.
  • หลังจากนั้น “ @แทนที่ ” คำอธิบายประกอบถูกใช้เพื่อแทนที่พาเรนต์ “ การเล่นเกม ” วิธีการเรียนชื่อ “ ประเภทเกม() '.
  • ในตอนท้าย ข้อความจำลองที่แตกต่างกันจะแสดงในเมธอดแทนที่คลาสลูกทั้งสอง

หลังจากสิ้นสุดขั้นตอนการดำเนินการ:

ผลลัพธ์แสดงว่าข้อความจำลองของคลาสย่อยแสดงบนคอนโซลโดยใช้การเชื่อมโยงแบบไดนามิก

ตัวอย่างที่ 2: การใช้การสืบทอดหลายระดับ

นอกจากนี้ยังสามารถใช้การเชื่อมโยงแบบไดนามิกเพื่อสร้างการสืบทอดหลายระดับ บล็อกรหัสสองชุดของโปรแกรมเดียวกันที่แสดงด้านล่าง:

การเล่นเกมระดับ {
ประเภทเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'เกมจริงหรือเกมเสมือนจริง' ) ;
}
}
คริกเก็ตคลาสขยายการเล่นเกม {
@ แทนที่
ประเภทเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'คริกเก็ตเป็นเกมทางกายภาพ' ) ;
}
โมฆะสาธารณะรูปแบบการเล่น ( ) {
System.out.println ( 'คริกเก็ตมีรูปแบบการเล่นที่แตกต่างกัน' ) ;
}
}
คลาส CallofDuty ขยายการเล่นเกม {
@ แทนที่
ประเภทเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'CallofDuty เป็นเกมเสมือนจริง' ) ;
}
โหมดเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'CallofDuty มีโหมดเกมที่หลากหลาย' ) ;
}
}
class CricketGame ขยายคริกเก็ต {
โหมดเกมโมฆะสาธารณะ ( ) {
System.out.println ( 'คริกเก็ตมีโหมดเกมเดียว' ) ;
}
}
คลาส CallofDutyGame ขยาย CallofDuty {
}

คำอธิบายของรหัสด้านบน:

  • อันดับแรก ผู้ปกครอง “ การเล่นเกม ” คลาสถูกสร้างขึ้นและรวมถึง “ ประเภทเกม() ” ฟังก์ชันที่มีข้อความจำลอง
  • ถัดไป คลาสลูก 2 คลาสชื่อ “ คริกเก็ต ' และ ' คอลออฟดิวตี้ ” ถูกสร้างขึ้น ทั้งสองจะแทนที่ฟังก์ชันคลาสพาเรนต์ที่ชื่อ “ ประเภทเกม() '.
  • คลาสเหล่านี้มีหนึ่งฟังก์ชันพิเศษชื่อ “ กำลังเล่นรูปแบบ () ' และ ' โหมดเกม() ” ฟังก์ชั่นตามลำดับ
  • จากนั้นสร้างลูกหลายระดับชื่อ “ เกมคริกเก็ต ” ที่ขยายโดยเด็ก “ คริกเก็ต ' ระดับ. ประกอบด้วย “ โหมดเกม() ” ฟังก์ชันที่ถูกแทนที่โดยพาเรนต์ของมัน “ คริกเก็ต ' ระดับ.
  • หลังจากนั้น “ เกม CallofDuty ” ชั้นเรียนถูกสร้างขึ้นในฐานะเด็กสำหรับ “ คอลออฟดิวตี้ ' ระดับ. สร้างการสืบทอดหลายระดับและเพื่อเปิดใช้งานการทำงานของการเชื่อมโยงแบบไดนามิก

ตอนนี้ใส่ ' หลัก() ' วิธี:

DynBind คลาสสาธารณะ {
โมฆะสาธารณะคงหลัก ( สตริง [ ] หาเรื่อง ) {
เกม CallofDuty รหัส = เกม CallofDuty ใหม่ ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

เกมคริกเก็ต คริคริ = เกมคริกเก็ตใหม่ ( ) ;
cricg.gameประเภท ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

คำอธิบายของรหัสด้านบน:

  • ประการแรก วัตถุของ “ เกม CallofDuty ” คลาสถูกสร้างขึ้นซึ่งเรียกใช้ฟังก์ชันของคลาสพาเรนต์
  • ในทำนองเดียวกัน “ เกมคริกเก็ต ” วัตถุถูกประกาศซึ่งเรียกใช้ฟังก์ชันคลาสแม่ซึ่งมีหลายระดับในลำดับชั้น

หลังจากสิ้นสุดขั้นตอนการดำเนินการ:

ผลลัพธ์แสดงว่าการสืบทอดหลายระดับถูกสร้างขึ้นโดยใช้การเชื่อมโยงแบบไดนามิกใน Java

บทสรุป

ใน Java, the “ การเชื่อมโยงแบบไดนามิก ” ให้ประโยชน์ เช่น ความหลากหลาย การใช้โค้ดซ้ำ ความยืดหยุ่น และความสามารถในการขยาย ดำเนินการโดยปฏิบัติตามกฎการสืบทอด การแทนที่เมธอด และการอัพคาสติ้ง การรวมแบบไดนามิกยังเปิดใช้งานฟังก์ชันรันไทม์และปรับปรุงพฤติกรรมที่ยืดหยุ่นและหลากหลายในแนวคิด OOPs นั่นคือทั้งหมดที่เกี่ยวกับการใช้งานและการปรับใช้การเชื่อมโยงแบบไดนามิกใน Java