Skip to main content

องค์ประกอบมากกว่ามรดกคืออะไร?

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

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

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