AOP vs OOP
AOP (Pemrograman berorientasi aspek) dan OOP (Pemrograman berorientasi objek) adalah dua paradigma pemrograman. Paradigma pemrograman adalah gaya dasar pemrograman komputer. Paradigma pemrograman berbeda dalam bagaimana setiap elemen program diwakili dan bagaimana setiap langkah didefinisikan untuk memecahkan masalah. Seperti namanya, OOP berfokus pada representasi masalah menggunakan objek dunia nyata dan perilakunya, sementara AOP berurusan dengan memecah program menjadi masalah lintas sektoral yang terpisah.
Apa itu AOP?
AOP adalah paradigma pemrograman, yang berurusan dengan memecah program menjadi area fungsionalitas yang kohesif (disebut kekhawatiran) yang melintasi beberapa area, untuk meningkatkan modularitas. Dukungan untuk abstraksi (seperti kelas, metode, dll.) untuk mengelompokkan dan merangkum masalah ke dalam entitas unik disediakan di banyak paradigma pemrograman lainnya. Tetapi kekhawatiran (seperti "Logging") adalah contoh dari masalah lintas sektoral, karena setiap bagian sistem yang dicatat dipengaruhi oleh strategi yang digunakan untuk logging. Fokus utama dari semua implementasi AOP adalah memiliki ekspresi lintas sektor yang sesuai untuk menangkap semua masalah di satu lokasi.
Apa itu OOP?
Dalam OOP, fokusnya adalah memikirkan masalah yang harus dipecahkan dalam elemen dunia nyata, dan mewakili masalah dalam bentuk objek dan perilakunya. Kelas menggambarkan representasi abstrak dari objek dunia nyata. Kelas seperti cetak biru atau template, yang mengumpulkan item serupa atau hal-hal yang dapat dikelompokkan bersama. Kelas memiliki properti yang disebut atribut. Atribut diimplementasikan sebagai variabel global dan instan. Metode di kelas mewakili atau mendefinisikan perilaku kelas-kelas ini. Metode dan atribut kelas disebut anggota kelas. Sebuah instance dari kelas disebut objek. Oleh karena itu, objek adalah struktur data yang sangat mirip dengan beberapa objek dunia nyata.
Ada beberapa konsep penting OOP seperti Data abstraction, Encapsulation, Polymorphism, Messaging, Modularity dan Inheritance. Biasanya, enkapsulasi dicapai dengan membuat atribut menjadi pribadi, sambil membuat metode publik yang dapat digunakan untuk mengakses atribut tersebut. Warisan memungkinkan pengguna untuk memperluas kelas (disebut sub kelas) dari kelas lain (disebut kelas super). Polimorfisme memungkinkan pemrogram untuk mengganti objek kelas di tempat objek kelas supernya. Biasanya, kata benda yang ditemukan dalam definisi masalah langsung menjadi kelas dalam program. Demikian pula, kata kerja menjadi metode. Beberapa bahasa OOP yang paling populer adalah Java dan C.
Apa perbedaan antara AOP dan OOP?
Perbedaan utama antara OOP dan AOP adalah fokus OOP adalah memecah tugas pemrograman menjadi objek, yang merangkum data dan metode, sedangkan fokus AOP adalah memecah program menjadi masalah lintas sektor.. Sebenarnya, AOP bukanlah pesaing untuk OOP, karena muncul dari paradigma OOP. AOP memperluas OOP dengan mengatasi beberapa masalah. AOP memperkenalkan cara yang rapi untuk menerapkan masalah lintas sektor (yang mungkin telah tersebar di beberapa tempat dalam implementasi OOP yang sesuai) di satu tempat. Oleh karena itu, AOP membuat program lebih bersih dan lebih longgar.