Terdapat beberapa permasalahan / konsep yang sering dibicarakan terkait rancangan dari bahasa-bahasa pemrograman yang menyediakan fitur inheritance dan dynamic binding (dalam OOP), yaitu:
- Exclusivity of objects. Apakah setiap entitas diperlakukan object atau gabungan dari imperative-style dan object?
- Apakah Subclass merupakan subtype? Apakah turunan (subclass) dari suatu class diiperlakukan sebagai subtype dari class tersebut? Jika subclass diperlakukan sebagai subtype maka variabel dari suatu class dapat digantikan oleh variabel lain dari parent classnya tanpa menyebabkan type error dan perubahan behavior program.
- Single and Multiple Inheritance. Apakah suatu class dapat mewarisi lebih dari satu class atau hanya diperbolehkan mewarisi satu class?
- Allocation and Deallocation of objects. Bagaimana object dialokasikan dan didealokasikan? Apakah dialokasikan secara stack dynamic atau heap dynamic? Apaka dealokasi dilakukan secara implicit atau explicit?
- Dynamic and Static Binding. Apakah binding antara message dengan method dilakukan secara dynamic atau static?
- Nested class. Apakah diperbolehkan suatu class didefinsikan dalam suatu class lainnya? Nesting class merupakan class yang didalamnya mendefinisikan nested class. Jika diperbolehkan terdapat nested class, member nested class mana saja yang dapat diakses oleh nesting class? Begitu juga member nesting class, member mana saja yang dapat diakses oleh nested class?
- Initialization of Objects. Apakah suatu object harus diinisialisasi secara manual oleh programmer, atau dapat dilakukan melaui suatu mekanisme implicit?
Comments
Post a Comment