The Problem of Multiple Inheritance
Ya, meskipun konsep multiple inheritance itu diperlukan, ternyata ada masalah untuk diimplementasikan. Sesuai dengan konsepnya, inheritance memungkinkan kita mengakses data (atribut/data slot) atau meng-invoke method pada suatu objek yang tidak didefinisikan pada kelas objek tsb. Compiler akan mencarikannya di kelas-kelas ancestor-nya. Pada single inheritance, algoritme pencarian data atau method tsb tidak terlalu sulit. Compiler tinggal mencari ke definisi kelas parent-nya. Jika tidak ada, terus dicari ke kelas parent dari parent-nya, dst-nya sampai ketemu atau sampai di ujung inheritance-chain (akan ada pesan error jika tidak ketemu).
Nah, pada multiple inheritance, algoritma pencarian menjadi lebih rumit, karena parent sebuah kelas bisa lebih dari satu. Kemana compiler harus mulai mencari, ke parent A-kah atau parent B dulu ? Perlu backtrack jika di satu path tidak ketemu. Belum lagi jika ada shared-parent, masalah bertambah lagi. Atau jika ada lebih dari satu data slot atau method dengan nama yang sama, hingga terjadi clash…
Beberapa bahasa pemrograman berorientasi objek menggunakan pendekatan yang berbeda-beda untuk penanganan masalah-masalah tersebut. Akan tetapi, dari beberapa literatur dinyatakan bahwa penanganan masalah ini belum dianggap mature…
Yang perlu diperhatikan adalah, dengan adanya perbedaan pendekatan dan penanganan di berbagai bahasa, berhati-hatilah jika akan berpindah bahasa. Pastikan bahwa hasil optimal yang sudah dicapai di suatu bahasa tidak jadi salah setelah program anda di-porting ke bahasa yang lain.
Gunakan multiple inherintance hanya jika benar-benar dibutuhkan saja. Hindari jika bisa…
6 Comments »
Leave a comment
-
Archives
- January 2010 (1)
- December 2009 (8)
- November 2009 (5)
- October 2009 (15)
- September 2009 (12)
- August 2009 (5)
- July 2009 (4)
- June 2009 (7)
- May 2009 (14)
- April 2009 (7)
- March 2009 (7)
- February 2009 (18)
-
Categories
- analysis
- aspect oriented
- CBSE
- critical system
- design
- digital learning
- e-business
- ecosystem
- final project
- fun
- health informatics
- introduction
- lecture
- maintenance
- method
- oop
- others
- programming
- project
- project management
- quality
- real time system
- requirement
- research
- service computing
- soa
- software architecture
- software developer
- software metrics
- software process
- software product
- software quality
- software standard
- technology
- testing
- tools
- Uncategorized
- webE
-
RSS
Entries RSS
Comments RSS
rasanya sekarang sedikit bahasa yang mengenable fitur multiple inheritance

untuk melindungi programmer dari kebingungan dan compiler dari kesulitan dalam tracking
lagipula jarang ada solusi yang harus benar-benar menggunakan multiple inheritance
Hingga saat ini memang belum sempat sampai menggunakan konsep ini secara nyata, atau mungkin karena memang jam terbang yang masih sedikit,.
Ya Petra, memang sedikit. Beberapa bahasa menerapkan alternatif lain untuk support ’semacam’ multiple inheritance tapi lebih praktis, seperti perspective, interface, delegation, mixin class…
Buat para ‘pengembang bahasa’ tentunya implementasi multiple inheritance ini jadi tantangan tersendiri, karena kalo berhasil, akan sangat menguntungkan programmer.
Ya Dwinanto, tugas-tugas di kuliah mungkin belum terlalu kompleks ya…
entah sih ya,
menurut pendapat saya multiple inheritance itu lebih banyak resikonya daripada keuntungannya, Bu….
“Utamakan komposisi dibandingkan inheritance”, hehe..
Aduh, itu kata-kata bijak masih teringat.. :p
Ya Petra, untuk sementara ini sebaiknya hindari multiple inheritance…
Arie, design principles ini banyak disebut-sebut saat membahas design pattern ya…
Jadi, dari pengalaman para expert, ternyata memang sebaiknya melakukan komposisi daripada inheritance. Tapi tentu ada banyak kasus yang sebaiknya diselesaikan dengan inheritance…