Saya tahu ada banyak makalah yang menjelaskan ketiga paradigma ini, tetapi saya sedang mencari penjelasan skematis.
Ada beberapa deskripsi yang sangat bagus tentang pemrograman berorientasi aspek di sini, jadi saya mengajukan pertanyaan ini dengan harapan mendapatkan jawaban berkualitas tinggi yang biasa digunakan oleh orang-orang di Stack Overflow.
paradigms
aspect-oriented
role
Adam Lear
sumber
sumber
Jawaban:
Seseorang dapat menjawab ini dengan menulis buku tentang ini. Namun, di sini adalah perbandingan dasar
1. Pemrograman Berorientasi Subjek
Pemrograman Berorientasi Subjek adalah keberangkatan radikal dari Object berorientasi sebagai berikut. Dalam OO, objek didefinisikan dalam istilah intrinsik (yaitu berdasarkan pada model yang menggambarkannya secara independen). dan berdasarkan ini atributnya (properti) dan metode (perilaku) diturunkan. Aplikasi hanya membuat penggunaanproperti dan perilaku ini. Bertentangan dengan ini, dalam pemrograman berorientasi subjek, tidak ada objek yang ada (dan dimodelkan) dalam isolasi semacam itu. Dalam prosesnya, tetapi perilaku objek telah disediakan oleh berbagai "subjek" objek lain yang berada di luar ruang lingkup dan kontrol penulis objek asli. Anggap itu sebagai cara untuk memperluas berbagai "perilaku yang dapat ditentukan secara independen "pada objek. Saya pikir ini akan jauh melampaui mendefinisikan template warisan dibandingkan dengan apa yang sedang dibahas di sini.
Asal usul istilah (dan konsep) yang tak terbantahkan berasal dari makalah " Pemrograman Berorientasi Subjek: Kritik terhadap Objek Murni , William Harrison dan Harold Ossher". Ini kertas bagus lainnya . Meskipun secara pribadi saya percaya ini adalah kerangka teori. Saya tidak tahu apakah ada bahasa / implementasi
Lihat ini , ini dan ini untuk info lebih lanjut.
2. Pemrograman Berorientasi Aspek
Pemrograman berorientasi aspek berasal dari konsep " Pemisahan oncerns ". Pada dasarnya ia memperluas baik pemrograman prosedural atau berorientasi objek untuk masalah yang saling terkait. Menyederhanakan orang dapat mengatakan bahwa perangkat lunak memiliki persyaratan fungsional dan yang non-fungsional . Persyaratan lintas sektor ini mencakup contoh-contoh seperti pencatatan, penanganan pengecualian, sinkronisasi utas, manajemen memori, optimisasi dan sebagainya. ASPEK lintas sektoral ini harus diekspresikan dan diterapkan secara terpisah dan independen ke bagian fungsional lainnya.
Pekerjaan komprehensif dalam bidang ini berasal dari IBM ; pada dasarnya masing - masing masalah atauaspek - aspek bisa saling independen membentuk "ruang perhatian" multidimensi. , (baca ini ).
Beberapa implementasi praktis yang baik dari Berorientasi Aspek adalah AspectJ dan AspectC ++ dan banyak lagi . Lihat ini .
3. Pemrograman Berorientasi Peran
Ketika kita berevolusi menuju agen, sering kali perlu untuk mendefinisikan "peran" dan tujuan di mana sebagai aktivitas pasti yang dilakukan agen tergantung pada lingkungan tempat dia bekerja. Ini analog dengan pemahaman konseptual manusia.
Tujuan utama adalah untuk memisahkan tujuan tugas dari kemampuan kerjasama dengan mendefinisikan konstruk eksplisit yang disebut proses kerjasama . Peran dimodelkan sebagai seperangkat kemampuan dan perilaku yang diharapkan. Namun, pendekatan ini juga memungkinkan pemodelan lingkungan eksekusi dan bagaimana agen / objek dapat memahami lingkungan juga. Lihat ini .
Ada berbagai kerangka kerja yang diusulkan dalam penelitian untuk pemodelan dan implementasi berbasis peran. Beberapa dari mereka adalah ROPE , BRAIN , ALAADIN dan banyak lagi .
sumber