Apa Komposisi atas Warisan?

Komposisi atas pewarisan adalah metodologi pemrograman yang digunakan dalam bahasa pemrograman berorientasi objek untuk membantu membangun hubungan yang lebih dinamis dan dapat diubah antara objek dalam aplikasi. Format dasar untuk komposisi di atas pewarisan adalah penyertaan instance objek di dalam objek lain. Ini jelas berbeda dari metode pewarisan berorientasi objek tetapi dapat melayani tujuan yang sama dalam banyak model. Keuntungan komposisi atas pewarisan termasuk batas yang jelas antara objek komposit dan objek pembungkus, kemampuan untuk mengubah implementasi suatu objek tanpa mempengaruhi seluruh hierarki pewarisan, dan kerangka kerja yang tidak terlalu membatasi untuk desain program awal. Beberapa komplikasi, bagaimanapun, dapat mencakup kesulitan dalam serialisasi dan struktur yang terlalu kompleks dalam program yang besar dan mapan.

Dalam pemrograman berorientasi objek, salah satu ciri yang penting untuk dibangun selama desain adalah bagaimana objek yang berbeda berhubungan satu sama lain. Warisan adalah mekanisme sentral dalam pemrograman berorientasi objek dan memungkinkan satu objek mewarisi semua data dan metode induknya, yang kemudian dapat ditambahkan, dimodifikasi, atau diperluas dengan implementasinya sendiri. Contoh desain berdasarkan pewarisan bisa dengan program yang memiliki satu kelas utama yang mendefinisikan sebuah mobil dan memodelkan beberapa atribut generik dari semua mobil. Kelas untuk masing-masing merek mobil kemudian dibuat sebagai turunan dari kelas utama tetapi mendefinisikan informasi spesifik, seperti ukuran mesin, kapasitas bahan bakar, atau informasi lain yang spesifik untuk merek mobil tersebut.

Komposisi diekspresikan dengan memasukkan instance objek ke dalam objek lain. Jika ada kelas utama yang mendefinisikan mobil generik, maka alih-alih membuat subkelas untuk merek mobil tertentu, kelas utama dapat berisi instance objek lain yang mendefinisikan mobil secara lebih spesifik. Ini bisa berarti kelas mobil utama dapat berisi objek untuk jenis mesin dan satu untuk kapasitas bahan bakar, yang akan ditetapkan saat kelas digunakan untuk membuat turunan dari merek mobil tertentu.

Dengan komposisi di atas pewarisan, objek yang terdapat dalam kelas utama tidak terkait langsung dengan kelas utama, memberikan kebebasan kepada pengembang untuk mengubah cara kerja objek individual. Masalah yang dapat dicegah dengan komposisi atas pewarisan adalah situasi di mana pohon pewarisan bisa terlalu dalam, yang berarti bahwa modifikasi apa pun pada kelas dalam pohon dapat memerlukan perubahan di sepanjang pohon. Tidak semua bahasa berorientasi objek memiliki dukungan untuk banyak pewarisan, dan komposisi atas pewarisan adalah metode yang dapat digunakan untuk mengatasi pembatasan ini.