กลับไปหน้าบทความ

อ่าน 7 นาที

การจัดองค์ประกอบของวัตถุ

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

การจัดองค์ประกอบของวัตถุ

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

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

เทคนิคการเขียนโปรแกรม

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

การประกอบวัตถุอาจเกี่ยวข้องกับกลุ่มของวัตถุที่เกี่ยวข้องกันหลายรายการ เช่น ชุดหรือลำดับของวัตถุการมอบหมายอาจช่วยเสริมการประกอบโดยการส่งต่อคำขอหรือการเรียกที่ทำกับวัตถุประกอบที่ครอบคลุมไปยังส่วนประกอบภายในหนึ่งรายการ[ 3 ]

ใน ภาษาโปรแกรมแบบ คลาสและแบบกำหนดชนิดข้อมูล ชนิดข้อมูลสามารถแบ่งออกเป็นชนิดข้อมูลแบบผสมและชนิดข้อมูลแบบไม่ผสม และการผสมสามารถมองได้ว่าเป็นความสัมพันธ์ระหว่างชนิดข้อมูล: วัตถุของชนิดข้อมูลแบบผสม (เช่นรถยนต์ ) " มี " วัตถุของชนิดข้อมูลอื่น ๆ (เช่นล้อ ) เมื่อวัตถุแบบผสมมีวัตถุย่อยหลาย ๆ ชิ้นที่มีชนิดข้อมูลเดียวกัน วัตถุย่อยเหล่านั้นอาจถูกกำหนดบทบาท เฉพาะ ซึ่งมักจะแยกแยะได้ด้วยชื่อหรือตัวเลข ตัวอย่างเช่น วัตถุ Pointอาจประกอบด้วยตัวเลข 3 ตัว ซึ่งแต่ละตัวแสดงถึงระยะทางตามแกนที่แตกต่างกัน เช่น 'x', 'y' และ 'z' การศึกษาความสัมพันธ์ระหว่างส่วนและส่วนรวมโดยทั่วไปเรียกว่าเมเรโอโลยี

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

ใน ภาษาโปรแกรมที่ใช้ ต้นแบบเช่นJavaScriptอ็อบเจ็กต์สามารถสืบทอดพฤติกรรมจากอ็อบเจ็กต์ต้นแบบได้แบบไดนามิก ณ ขณะที่สร้างอินสแตนซ์ การประกอบ (Composition) ต้องแตกต่างจากการสร้างต้นแบบ (Prototyping) กล่าวคือ อ็อบเจ็กต์ที่สร้างขึ้นใหม่จะสืบทอดการประกอบจากต้นแบบ แต่ตัวมันเองก็สามารถประกอบขึ้นใหม่ได้อีกเช่นกัน

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

เทคนิคการสร้างแบบจำลอง UML

คลาสจักรยานที่แสดงใน UML ประกอบด้วยคุณสมบัติสามอย่าง ได้แก่ อาน ล้อ และชิ้นส่วน โดยสองคุณสมบัติหลังมีค่าความซ้ำซ้อนที่บ่งบอกถึงวัตถุหลายชิ้น
การประกอบวัตถุโดยใช้คุณสมบัติ UML ในการประกอบวัตถุ

ใน การสร้างแบบจำลอง UMLวัตถุสามารถประกอบขึ้นตามแนวคิดได้ โดยไม่ขึ้นอยู่กับการนำไปใช้ด้วยภาษาโปรแกรม มีสี่วิธีในการประกอบวัตถุใน UML ได้แก่ คุณสมบัติ การเชื่อมโยง การรวมกลุ่ม และการประกอบ: [ 4 ]

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

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

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

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

สัญลักษณ์กราฟิกแสดงถึง:

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

การรวมกลุ่ม

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

โดยทั่วไปแล้ว การประกอบวัตถุ (Composition) มักทำโดยการที่วัตถุหนึ่งบรรจุวัตถุอื่นไว้ภายใน ตัวอย่างเช่น ในภาษา C++ :

import std ;using std :: string ; using std :: vector ; using std :: weak_ptr ;คลาสProfessor { // ... };คลาสDepartment { private : // การรวมกลุ่ม: อาจารย์อาจมีอายุยืนกว่าภาควิชาvector < weak_ptr < Professor >> members ; const string title ; public : explicit Department ( const string & title ) : title { title } {} };คลาสUniversity { private : // โครงสร้าง: ภาควิชาต่างๆ จะมีอยู่ตราบใดที่คณะวิชายังมีอยู่vector < Department > faculty = { Department ( "Chemistry" ), Department ( "Physics" ), Department ( "Arts" ), // ภาควิชาอื่นๆ เพิ่มเติม... }; public : University () = default ; };

ในการรวมกลุ่ม วัตถุอาจมีเพียงการอ้างอิงหรือตัวชี้ไปยังวัตถุอื่น (และไม่มี ความรับผิดชอบ ตลอดอายุการใช้งานสำหรับวัตถุนั้น)

บางครั้งการรวมกลุ่มก็ถูกเรียกว่าการประกอบเมื่อความแตกต่างระหว่างการประกอบแบบธรรมดาและการรวมกลุ่มนั้นไม่สำคัญ

โค้ดข้างต้นจะแปลงเป็นแผนภาพคลาส UML ดังต่อไปนี้:

การรวมกลุ่มใน COM

การรวมกลุ่มใน COM

ใน โมเดล Component Objectของ Microsoft การรวมกลุ่ม (aggregation) หมายความว่าวัตถุหนึ่งส่งออกอินเทอร์เฟซหนึ่งหรือหลายอินเทอร์เฟซของวัตถุอื่นที่เป็นเจ้าของ ราวกับว่าเป็นเจ้าของอินเทอร์เฟซนั้นเอง ในทางรูปแบบแล้ว สิ่งนี้คล้ายกับการประกอบ (composition)หรือการห่อหุ้ม (encapsulation ) มากกว่าการรวมกลุ่ม (aggregation) อย่างไรก็ตาม แทนที่จะใช้งานอินเทอร์เฟซที่ส่งออกโดยการเรียกอินเทอร์เฟซของวัตถุที่เป็นเจ้าของ อินเทอร์เฟซของวัตถุที่เป็นเจ้าของเองจะถูกส่งออก วัตถุที่เป็นเจ้าของมีหน้าที่รับผิดชอบในการตรวจสอบให้แน่ใจว่าเมธอดของอินเทอร์เฟซเหล่านั้นที่สืบทอดมาจากIUnknownเรียกใช้เมธอดที่เกี่ยวข้องของเจ้าของจริง ๆ เพื่อรับประกันว่าจำนวนการอ้างอิงของเจ้าของถูกต้องและอินเทอร์เฟซทั้งหมดของเจ้าของสามารถเข้าถึงได้ผ่านอินเทอร์เฟซที่ส่งออก ในขณะที่ไม่มีอินเทอร์เฟซอื่น ๆ (ส่วนตัว) ของวัตถุที่เป็นเจ้าของสามารถเข้าถึงได้[ 5 ]

แบบฟอร์มพิเศษ

การกักกัน

โครงสร้างที่ใช้สำหรับจัดเก็บอินสแตนซ์หลายๆ ตัวของชนิดข้อมูลแบบผสม เรียกว่า การบรรจุ (containment) ตัวอย่างของภาชนะบรรจุดังกล่าว ได้แก่อาร์เรย์อาร์เรย์แบบเชื่อมโยงต้นไม้ไบนารีและรายการเชื่อมโยง

ในUMLความสัมพันธ์แบบ "บรรจุ" จะแสดงด้วยค่าความซ้ำซ้อน 0..* หรือ 1..* ซึ่งบ่งชี้ว่าวัตถุประกอบนั้นประกอบด้วยอินสแตนซ์จำนวนไม่ทราบแน่ชัดของคลาสที่ประกอบขึ้น

การประกอบแบบเรียกซ้ำ

อ็อบเจ็กต์สามารถประกอบขึ้นจากข้อมูลแบบเรียกซ้ำได้ และชนิดของอ็อบเจ็กต์นั้นเรียกว่าชนิดข้อมูลแบบเรียกซ้ำ ตัวอย่างเช่น ต้นไม้ชนิดต่างๆ แผนภาพแบบมีทิศทาง (DAG)และกราฟแต่ละโหนดในต้นไม้สามารถเป็นได้ทั้งกิ่งหรือใบ กล่าวอีกนัยหนึ่ง แต่ละโหนดเป็นต้นไม้ในเวลาเดียวกันเมื่อมันเป็นส่วนหนึ่งของต้นไม้อื่น

ใน UML การประกอบแบบเรียกซ้ำจะแสดงด้วยความสัมพันธ์ การรวมกลุ่ม หรือการประกอบของคลาสกับตัวมันเอง

รูปแบบผสม

รูปแบบการออกแบบคอมโพสิต (Composite Design Pattern)เป็นการออกแบบเชิงวัตถุที่อิงตามประเภทคอมโพสิต (Composite Types) ซึ่งผสมผสานการประกอบแบบเรียกซ้ำ (Recursive Composition) และการบรรจุ (Containment) เพื่อสร้างลำดับชั้นส่วน-ทั้งหมดที่ซับซ้อน

ประเภทผสมใน C

นี่เป็นตัวอย่างของการเรียบเรียงดนตรีในภาษา ซี

enum การจ้างงาน{ กำลังหางาน, มืออาชีพ, ไม่ใช่มืออาชีพ, เกษียณแล้ว, นักศึกษา};struct Person { char name [ 20 ]; int age ; Employment employment ; };

ในตัวอย่างนี้ ประเภทข้อมูลพื้นฐาน (ที่ไม่ใช่แบบผสม) intและenum Employmentประเภทอาร์เรย์แบบผสมchar[]ถูกนำมารวมกันเพื่อสร้างโครงสร้างแบบผสม จากนั้น struct Personแต่ละstruct Personโครงสร้างจะมี "อายุ" ชื่อ และประเภทการจ้างงาน

ลำดับเหตุการณ์การแต่งเพลงในภาษาต่างๆ

ภาษา Cเรียกเรคอร์ดว่าstructหรือ structure; ภาษา เชิงวัตถุเช่นJava , SmalltalkและC++มักจะซ่อนเรคอร์ดไว้ภายในอ็อบเจ็กต์ ( อินสแตนซ์ ของคลาส ); ภาษาใน ตระกูล MLเรียกเรคอร์ดว่า records เฉยๆCOBOL เป็น ภาษาโปรแกรมแรกที่แพร่หลายซึ่งรองรับเรคอร์ดโดยตรง[ 6 ] ALGOL 68ได้รับมาจาก COBOL และPascalได้รับมาจาก ALGOL 68 ไม่ทางตรงหรือทางอ้อมCommon Lispให้โครงสร้างและคลาส (โดยคลาสผ่านทางCommon Lisp Object System )

1959 – โคบอล
01 บันทึกข้อมูลลูกค้า. 03 หมายเลขลูกค้าpic 9(8) comp . 03 ชื่อลูกค้า. 05 ชื่อจริงpic x(15) . 05 อักษรย่อชื่อpic x . 05 นามสกุลpic x(15) . 03 ที่อยู่ลูกค้า. 05 ถนน. 07 ชื่อถนนpic x(15) . 09 เลขที่บ้านpic 999 comp . 05 เมืองpic x(10) . 05 รหัสประเทศpic x(3) . 05 รหัสไปรษณีย์pic x(8) . 03 จำนวนเงินที่ค้างชำระpic 9(8) comp .
1960 – ALGOL 60

อาร์เรย์เป็นชนิดข้อมูลผสม เพียงชนิดเดียว ในAlgol 60

1964 – PL/I
dcl 1 newtypet based (P); 2 (a, b, c) bin คงที่(31), 2 (i, j, k) float, 2 r ptr; จัดสรรประเภทใหม่; 
1968 – ALGOL 68
ค่าสูงสุดภายใน = 99; โหมด newtypet = [0..9] [0..max]struct ( จำนวนจริงยาว a, b, c, จำนวนเต็มสั้น i, j, k, จำนวนจริงอ้างอิง r ); newtypet newarrayt = (1, 2, 3, 4, 5, 6, heap real := 7) 

ตัวอย่างเช่น โครงสร้างข้อมูลแบบลิสต์เชื่อมโยงอาจถูกประกาศได้ดังนี้:

โหมดโหนด = ยูเนียน (จำนวนจริง, จำนวนเต็ม, จำนวนเต็มบวก, สตริง) รายการ = โครงสร้าง (โหนด val, รายการอ้างอิงถัดไป); 

สำหรับ ALGOL 68 เฉพาะชื่อประเภทเท่านั้นที่ปรากฏทางด้านซ้ายของเครื่องหมายเท่ากับ และที่สำคัญที่สุดคือโครงสร้างนั้นสร้างขึ้นและสามารถอ่านได้จากซ้ายไปขวาโดยไม่คำนึงถึงลำดับความสำคัญ

1970 – ปาสคาล
type a = array [ 1 .. 10 ] of integer ; b = record a , b , c : real ; i , j , k : integer ; end ;
1972 – เคแอนด์อาร์ ซี
#define MAX 99struct Aggregation { double a , b , c ; float r ; short i , j , k ; };struct Aggregation a [ 10 ][ MAX + 1 ];
1977 – FORTRAN 77

ภาษา Fortran 77 มีอาร์เรย์ แต่ขาดคำจำกัดความของเรคอร์ด/โครงสร้างอย่างเป็นทางการ โดยทั่วไปแล้วโครงสร้างแบบผสมจะถูกสร้างขึ้นโดยใช้คำสั่ง EQUIVALENCEor :COMMON

ชื่อตัวละคร* 32 , ที่อยู่* 32 , โทรศัพท์* 16 หนี้สินที่แท้จริง/ ลูกค้า/ ชื่อ, ที่อยู่, โทรศัพท์, หนี้สิน
1983 – เอดา
ประเภทข้อมูลลูกค้า: ชื่อ: ประเภทชื่อ; ที่อยู่: ประเภทที่อยู่; หมายเลข โทรศัพท์: ประเภทหมายเลขโทรศัพท์; ยอดค้างชำระ: จำนวนเต็มช่วง1 ถึง999999 ; สิ้นสุดข้อมูล;

Ada 95 นำแนวคิด OOP มาใช้ผ่านประเภทแท็ก (เทียบเท่ากับคลาสใน C++) ส่วน Ada 2012 เพิ่มการสนับสนุน การตรวจสอบ การแทนที่ผ่านสัญญาแบบครอบคลุมทั้งคลาส

1983 – C++
#define MAX 99;struct Aggregation { double a , b , c ; float & r ; short i , j , k ; };การรวมกลุ่มa [ 10 ][ MAX + 1 ];
1991 – ไพธอน
max = 99 class NewTypeT : def __init__ ( self ): self . a = self . b = self . c = 0 self . i = self . j = self . k = 0.0 # เริ่มต้นอาร์เรย์ตัวอย่างของคลาสนี้newarrayt = [[ NewTypeT () for i in range ( max + 1 )] for j in range ( 10 )]
1992 – FORTRAN 90

อาร์เรย์และสตริงได้รับการสืบทอดมาจาก FORTRAN 77 และมีการแนะนำคำสงวนใหม่หนึ่งคำ:type

type newtypet double precision a , b , c integer * 2 i , j , k * No pointer type REF REAL R end typeประเภท( newtypet ) t ( 10 , 100 )

FORTRAN 90 ได้รับการปรับปรุงและรวมเอาแนวคิดของFORTRAN IVNAMELIST ที่เรียกว่า .

INTEGER :: jan = 1 , feb = 2 , mar = 3 , apr = 4 NAMELIST / สัปดาห์/ ม.ค. , feb , mar , apr
1994 – ANSI Common Lisp

Common Lisp มีโครงสร้างข้อมูล และมาตรฐาน ANSI Common Lisp ได้เพิ่มCLOSคลาส เข้ามาด้วย

( defclass some-class () (( f :type float ) ( i :type integer ) ( a :type ( array integer ( 10 )))))

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการประกอบในภาษา C/C++ โปรดดูที่ประเภทคอมโพสิต (Composite type )

ดูเพิ่มเติม

  • การเชื่อมโยง การรวมกลุ่ม และองค์ประกอบเข้าถึงเมื่อเดือนกุมภาพันธ์ พ.ศ. 2552
  • Harald Störrle, UML2, Addison-Wesley, 2005
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Object_composition&oldid=1357699596 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การจัดองค์ประกอบของวัตถุ

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

เทคนิคการเขียนโปรแกรม

การเขียนโปรแกรมเชิงวัตถุ นั้นอยู่บนพื้นฐานของการใช้ วัตถุ เพื่อ ห่อหุ้ม ข้อมูลและพฤติกรรม โดยใช้เทคนิคหลักสองประการในการประกอบและประกอบฟังก์ชันการทำงานเข้าด้วยกันให้ซับซ้อนยิ่งขึ้น ได้แก่ การกำหนดชนิดย่อยและการประกอบวัตถุ [ 2 ]...

เทคนิคการสร้างแบบจำลอง UML

ใน การสร้างแบบจำลอง UML วัตถุสามารถประกอบขึ้นตามแนวคิดได้ โดยไม่ขึ้นอยู่กับการนำไปใช้ด้วยภาษาโปรแกรม มีสี่วิธีในการประกอบวัตถุใน UML ได้แก่ คุณสมบัติ การเชื่อมโยง การรวมกลุ่ม และการประกอบ: [ 4 ]

การรวมกลุ่ม

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