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…
-
Archives
- 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)
- January 2009 (15)
-
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