Rabu, 03 Desember 2008

beberapa isu dari OOP

Ada sejumlah kesalahan yang dilakukan oleh programmer ketika mereka menggunakan bahasa pemrograman berorientasi objek. Salah satu contohnya yaitu penggantian terhadap jenis type dari object yang berkaitan dengan object tersebut. Bila ini terjadi, kelebihan polymorphism dan inheritence menjadi berkurang.

Ini hanyalah satu dari sekian banyak masalah programmer yang dihadapi ketika mencoba untuk membuat sebuah aplikasi dengan pendekatan pemrograman berorientasi objek. Salah satu ciri dari OOP adalah yang mendukung apa yang disebut code centrality. code centrality terhubung ke inheritence. Banyak kritik menunjukkan bahwa code centrality membuat kode lebih mahal dalam proses maintenance.

Biaya maintenance yang dilibatkan dengan code dapat menjadi tinggi dengan melibatkan aplikasi yang besar. Jika ada masalah di tingkat yang lebih tinggi dari sistem, hal ini dapat menyebabkan masalah serius. pada Industri teknologi informasi adalah salah satu yang tinggi turnovernya, dan karyawan baru tidak akan seperti akrab dengan code. Beberapa pengembang yang menjaga tingkat kelas yang lebih rendah telah dikenal untuk menghindari membuat perubahan pada kode untuk memperbaiki bug. developer tersebut akan meminta orang lain untuk memperbaiki masalah. Namun, code centrality dapat diperoleh dengan teknik yang aman. Hal lain yang banyak kritikus keluarkan adalah tentang OOP yang eksklusif dari daftar pilihan mungkin tidak sesuai dengan perubahan yang terjadi dalam dunia nyata.

Namun, mereka yang mendukung OOP yang merespon seperti teknik "komposisi" dapat membantu mereka memecahkan banyak dari masalah ini. Walaupun demikian, beberapa mengatakan bahwa penyesuaian jaringan teknik komposisi struktur data, dan ini mungkin tbukan merupakan alternatif yang baik. Cara lain yang dapat dihindari adalah dengan hanya melihat objek spesifik yang tersedia, dan model hubungan di antara

mereka. Perlu dicatat bahwa inheritence dan polymorphism dapat menjadi suatu hal yang kompleks. Banyak masukan tentang OOP bahwa menggunakan model relasional adalah lebih baik karena memiliki struktur matematika yang didasarkan pada relasional kalkulus dan predikat kalkulus. Sebaliknya, OOP tidak memiliki struktur yang didasarkan pada model matematika.

dan juga ditambahkan bahwa OOP menyerupai database sistem navigasi yang digunakan selama tahun 1960-an. Orang-orang ini mengklaim bahwa database relasional hanya bersifat pengganti. Namun, hal itu tidak menjadi tujuan utama mereka yang mengembangkan OOP. Kemungkinan pemodelan database relasional yang didasarkan pada lokasi yang berbeda dari yang didasarkan pada OOP. Dalam keadaan apapun, ada hubungan antara dua sebab relasional tabel database digunakan dengan model OOP. Banyak orang mempunyai pendapat tentang peran kedua konsep ini bermain.

Beberapa kritikus mengklaim bahwa OOP telah mengakibatkan pengkopian yang tidak diperlukan, sedangkan yang lainnya hanya klaim yang berlawanan. Masalah lainnya yang dilihat pada OOP tersebut disebut

impedance mismatch. Ini akan terjadi antara database relasional dan OOP. Ini akan terjadi jika skala dan penekanan di antara operasi yang dilakukan oleh database dan objek berbeda. Transaksi Database cenderung jauh lebih besar daripada OOP. Walaupun database dapat berguna jika untuk menyimpan informasi di antara objek, data yang berhubungan dengan objek hanya boleh disimpan sekali data yang telah diringkas dan
dikumpulkan.

presentasi dari obyek jangan ditambahkan ke database. Beberapa kritikus menyatakan bahwa karena objek yang kecil, tidak menjadikan OOP akan jadi rumit. Pendukung akan sering merespon dengan menyebutkan bahwa tidak ada overhead kinerja yang diciptakan oleh program berorientasi objek. Mereka akan pergi dan mengatakan bahwa setiap domain akan dimodelkan secara mandiri dari yang lain. Skala arsitektur akan
tergantung pada informasi yang harus disimpan dalam database. Banyak kritikus akan fokus pada sambungan antara database schemas, dan mereka akan menunjukan bahwa duplikasi akan menjadikan konflik.

Mungkin terdapat beberapa masalah dengan OOP, hal yang sama dapat dikatakan untuk pemograman berorientasi subyek. Paradigma yang digunakan akan tergantung pada kebutuhan dari orang yang menggunakannya. Sementara OOP mungkin pendekatan yang lebih baik dalam beberapa situasi, mungkin tidak dapat yang terbaik dalam pendekatan lain.

Tidak ada komentar: