Composition ใน Java คืออะไร? ด้วยตัวอย่าง

เผยแพร่แล้ว: 2023-01-27

สารบัญ

พื้นฐานของการเชื่อมโยงใน Java:

การเชื่อมโยงสามารถกำหนดใน Java เป็นการเชื่อมต่อระหว่างสองคลาสแต่ละคลาสโดยใช้อ็อบเจ็กต์ที่แตกต่างกัน ประเภทของความสัมพันธ์ที่จัดการโดยการเชื่อมโยง Java คือ:

  • หนึ่งต่อหนึ่ง: มีคลาสที่ได้รับมาเพียงคลาสเดียวสำหรับแต่ละคลาสพาเรนต์
  • หนึ่งต่อกลุ่ม: คลาสหลักเดียวอาจมีคลาสย่อยมากกว่าหนึ่งคลาส
  • กลุ่มต่อหนึ่ง: คลาสลูกเดียวอาจเชื่อมโยงกับซูเปอร์คลาสมากกว่าหนึ่งคลาส
  • กลุ่มต่อกลุ่ม: คลาสพาเรนต์จำนวนหนึ่งอาจเชื่อมโยงกับคลาสย่อยหนึ่งคลาส และคลาสย่อยจำนวนมากอาจเชื่อมโยงกับคลาสพาเรนต์เดียว

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

การรวมใน Java เป็นกระบวนการทั่วไปมากกว่าเมื่อเปรียบเทียบกับองค์ประกอบ แบบฟอร์มเหล่านี้ขึ้นอยู่กับชนิดของความสัมพันธ์ที่ได้รับการสนับสนุนระหว่างชั้นเรียน

รู้เบื้องต้นเกี่ยวกับองค์ประกอบใน Java:

เทคนิคการออกแบบใน Java ที่ใช้ความสัมพันธ์แบบ Has-A เรียกว่าองค์ประกอบ กระบวนการสืบทอดจะใช้รหัสซ้ำ การจัดองค์ประกอบใน Java สามารถทำได้โดยใช้ตัวแปรอินสแตนซ์ที่อ้างถึงวัตถุอื่นๆ ถ้าวัตถุประกอบด้วยวัตถุอื่นในลักษณะที่วัตถุที่เป็นส่วนประกอบไม่สามารถดำรงอยู่ได้หากปราศจากการอยู่รอดของวัตถุหลัก ประเภทของความสัมพันธ์จะเรียกว่าองค์ประกอบ เพื่อให้เฉพาะเจาะจงมากขึ้น องค์ประกอบคือลักษณะที่อธิบายการอ้างอิงระหว่างสองคลาสขึ้นไปด้วยความช่วยเหลือของตัวแปรอินสแตนซ์ ที่นี่ควรสร้างอินสแตนซ์ก่อนใช้ตัวแปรทันที ให้เรายกตัวอย่าง Library เพื่อความเข้าใจที่ชัดเจนเกี่ยวกับแนวคิด 'องค์ประกอบ'

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

ตรวจสอบหลักสูตรเทคโนโลยีฟรีของเราเพื่อรับความได้เปรียบเหนือการแข่งขัน

สำรวจหลักสูตรวิศวกรรมซอฟต์แวร์ยอดนิยมของเรา

วิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์จาก LJMU & IIITB โปรแกรมใบรับรองความปลอดภัยทางไซเบอร์ของ Caltech CTME
Bootcamp การพัฒนาสแต็คเต็มรูปแบบ โปรแกรม PG ใน Blockchain
โปรแกรม Executive PG ในการพัฒนา Full Stack
ดูหลักสูตรทั้งหมดของเราด้านล่าง
หลักสูตรวิศวกรรมซอฟต์แวร์

คำอธิบายโดยละเอียดของ Composition ใน Java:

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

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

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

ทักษะการพัฒนาซอฟต์แวร์ตามความต้องการ

หลักสูตร JavaScript หลักสูตร Core Java หลักสูตรโครงสร้างข้อมูล
หลักสูตร Node.js หลักสูตร SQL หลักสูตรการพัฒนาสแต็คเต็มรูปแบบ
หลักสูตร NFT หลักสูตร DevOps หลักสูตรข้อมูลขนาดใหญ่
หลักสูตร React.js หลักสูตรความปลอดภัยทางไซเบอร์ หลักสูตรคลาวด์คอมพิวติ้ง
หลักสูตรการออกแบบฐานข้อมูล หลักสูตรหลาม หลักสูตร Cryptocurrency

การสืบทอดแตกต่างจากองค์ประกอบใน Java อย่างไร

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

พารามิเตอร์

องค์ประกอบ

มรดก

ขั้นพื้นฐาน มันรวมความสัมพันธ์ HAS-A มันรวมเอาความสัมพันธ์แบบ IS-A
การใช้รหัสซ้ำ รหัสสามารถใช้ซ้ำได้ในหลายคลาส การใช้รหัสซ้ำเป็นไปได้เฉพาะในคลาสเดียวเท่านั้น เนื่องจากคลาสสามารถขยายอินเทอร์เฟซได้เพียงอินเทอร์เฟซเดียว
ขอบเขต สามารถทำได้ง่ายในขณะรันไทม์ คุณสมบัตินี้ทำได้ดียิ่งขึ้นในเวลารวบรวม
สุดท้าย ช่วยให้สามารถนำรหัสกลับมาใช้ใหม่ได้แม้จากชั้นเรียนสุดท้าย รหัสจากคลาสสุดท้ายไม่สามารถนำมาใช้ซ้ำได้ในกรณีของการสืบทอด
วิธีการ วิธีการจะไม่ถูกเปิดเผย อินเทอร์เฟซสาธารณะใช้สำหรับการโต้ตอบ การสืบทอดเปิดเผยทั้งวิธีการป้องกันและสาธารณะของคลาสพื้นฐาน

ความแตกต่างระหว่างการรวมและองค์ประกอบ:

การรวมตัว

องค์ประกอบ

เป็นประเภทของการเชื่อมโยง Java ที่อ่อนแอ เป็นประเภทการเชื่อมโยงที่แข็งแกร่งกว่าเมื่อเปรียบเทียบกับการรวม
คลาสที่ได้รับนั้นไม่ขึ้นอยู่กับคลาสพื้นฐาน ดังนั้นคลาสที่ได้รับสามารถดำรงอยู่ต่อไปได้แม้ว่าคลาสพื้นฐานจะถูกทำลาย คลาสที่ได้รับนั้นขึ้นอยู่กับคลาสพื้นฐานอย่างสมบูรณ์ ดังนั้นคลาสย่อยจึงไม่สามารถมีอยู่ได้หากซูเปอร์คลาสถูกทำลาย
คลาสลูกมีอายุของมันเอง อายุการใช้งานของคลาสลูกขึ้นอยู่กับคลาสพาเรนต์
คลาสพาเรนต์ใช้คลาสย่อยในการเชื่อมโยงประเภทนี้ ดังนั้นคลาสที่ได้รับจึงไม่ได้เป็นเจ้าของโดยคลาสพื้นฐาน ในประเภทการเชื่อมโยงนี้ คลาสพาเรนต์จะเป็นเจ้าของคลาสย่อย ดังนั้นคลาสหลักจึงเป็นเจ้าของคลาสย่อย
ถือเป็นความสัมพันธ์แบบ HAS-A คลาสที่ได้รับมีคลาสพื้นฐาน ถือเป็นส่วนหนึ่งของความสัมพันธ์ คลาสที่ได้รับเป็นส่วนหนึ่งของคลาสพื้นฐาน
คำหลักสุดท้ายไม่ได้ใช้เพื่อแสดงการรวม คำหลักสุดท้ายอาจใช้เพื่อแสดงถึงองค์ประกอบ
ตัวอย่าง : รถมีคนขับ ตัวอย่าง เครื่องยนต์เป็นส่วนหนึ่งของรถยนต์

อ่านบทความยอดนิยมของเราเกี่ยวกับการพัฒนาซอฟต์แวร์

วิธีการใช้ Data Abstraction ใน Java? Inner Class ใน Java คืออะไร ตัวระบุ Java: คำจำกัดความ ไวยากรณ์ และตัวอย่าง
ทำความเข้าใจเกี่ยวกับ Encapsulation ใน OOPS พร้อมตัวอย่าง อาร์กิวเมนต์บรรทัดคำสั่งใน C อธิบาย คุณลักษณะและคุณลักษณะ 10 อันดับแรกของ Cloud Computing ในปี 2022
ความหลากหลายใน Java: แนวคิด ประเภท ลักษณะ และตัวอย่าง แพ็คเกจใน Java & วิธีใช้งาน? บทช่วยสอน Git สำหรับผู้เริ่มต้น: เรียนรู้ Git ตั้งแต่เริ่มต้น

ข้อดีของการใช้ Composition ใน Java:

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

ข้อ จำกัด ขององค์ประกอบใน Java:

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

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, การพัฒนาซอฟต์แวร์แบบ full-stack โปรดดูโปรแกรม Executive PG Program ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ – ความเชี่ยวชาญในการพัฒนาแบบ Full Stack ซึ่งออกแบบมาสำหรับมืออาชีพในการทำงานและให้การฝึกอบรมอย่างเข้มงวดมากกว่า 500 ชั่วโมง , 9+ โครงการและการมอบหมายงาน, สถานะศิษย์เก่า IIIT-B, โครงการที่ลงมือปฏิบัติจริงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

ต้องการแบ่งปันบทความนี้หรือไม่?

เตรียมพร้อมสำหรับอาชีพแห่งอนาคต

สมัครเลยสำหรับปริญญาโทสาขาวิศวกรรมซอฟต์แวร์