Perbedaan antara Abstraksi dan Enkapsulasi Perbedaan Antara

Anonim

Anda untuk menerapkan objek dunia nyata ke dalam program dan kode. Sementara keduanya berjalan beriringan, keduanya sangat berbeda satu sama lain. Sementara setiap metode adalah enkapsulasi, namun juga merupakan abstraksi. Secara sederhana, ketika Anda meletakkan hal yang berbeda bersama untuk menciptakan sebuah entitas, Anda benar-benar menciptakan sebuah konsep - sebuah abstrak. Meskipun keduanya secara teknis tidak terpisahkan, mereka sama sekali tidak memiliki kesamaan. Hampir benar bahwa setiap enkapsulasi adalah abstraksi karena keduanya menyembunyikan sesuatu, namun, mereka memiliki perbedaan yang sama.

Apa itu Abstraksi?

Abstraksi adalah konsep OOP dasar yang hanya berfokus pada data objek yang relevan dan menyembunyikan semua detail yang tidak relevan yang mungkin atau mungkin tidak untuk perilaku generik atau khusus. Ini menyembunyikan detail latar belakang dan menekankan pada poin penting untuk mengurangi kompleksitas dan meningkatkan efisiensi. Pada dasarnya, abstraksi adalah alat pemrograman untuk mengelola kompleksitas. Abstraksi berfokus pada gagasan daripada kejadian. Ini menyembunyikan detail pada tingkat desain dengan menyediakan fungsionalitas kepada pengguna. Objek yang dihasilkan juga bisa disebut abstraksi. Pemrogram memastikan entitas yang bernama akan memiliki semua aspek penting yang disertakan dan tidak ada yang tidak relevan.

Mari kita contohkan contoh abstraksi dunia nyata. Mari pertimbangkan kasus kendaraan, yang dalam hal ini adalah kendaraan Anda. Seorang mekanik mencoba memperbaiki mobil Anda atau katakanlah bagian tertentu dari mobil Anda. Di sini, Anda adalah pengguna dan Anda tidak ingin membahas secara spesifik mobil Anda atau bagian mana yang benar-benar rusak. Anda tidak benar-benar peduli dengan hal-hal itu; Anda hanya ingin kendaraan Anda kembali dalam kondisi aslinya tanpa perlu khawatir dengan detailnya. Jadi, Anda sebenarnya mengatakan kepada mekanik apa yang Anda inginkan dengan memisahkan bagian implementasi. Ini adalah abstraksi. Anda berfokus pada hal yang paling penting, yang membuat mobil Anda tetap berfungsi, daripada berfokus pada hal yang spesifik.

Apakah Enkapsulasi itu?

Enkapsulasi adalah konsep OOP lain yang mengikat data dan fungsi menjadi satu komponen sekaligus membatasi akses ke beberapa komponen. Ini adalah salah satu konsep dasar utama OOP yang membungkus data dan informasi di bawah satu kesatuan. Dalam istilah teknis, enkapsulasi berarti menyembunyikan atribut untuk melindungi variabel dari akses luar sehingga perubahan pada satu bagian aplikasi tidak akan mempengaruhi bagian lainnya. Sebaliknya, dengan membuat informasi lebih terbuka Anda akan berisiko penyalahgunaan data. Ini memberikan integritas dasar pada data dengan melindunginya dari dunia luar. Secara sederhana, ini menyembunyikan detail ekstra dari dunia luar.

Mari ambil contoh mouse Bluetooth.Anda hanya perlu tahu tentang perilaku perangkat tanpa khawatir tentang detail pelaksanaan seperti jenis sensor yang dimiliki mouse, apakah nirkabel atau tidak, dll. Setiap detail tunggal menggambarkan mouse namun terlepas dari detailnya, hanya mouse saja. Anda hanya butuh sebuah antarmuka untuk menggunakan mouse, yang dalam hal ini adalah mouse pointer. Ini adalah enkapsulasi. Perbedaan antara Abstraction dan Enkapsulasi

Sementara keduanya merupakan konsep dasar yang terkait dengan OOP dan secara teknis tidak dapat dipisahkan, mereka masih memiliki perbedaan dalam banyak aspek.

Perbedaan dalam "Definisi" Abstraksi dan Enkapsulasi

  1. - Abstraksi adalah konsep OOP fundamental yang menekankan pada semua aspek penting dari sebuah objek dengan menyembunyikan rincian yang tidak relevan untuk meningkatkan efisiensi dan menghilangkan kompleksitas. Enkapsulasi, di sisi lain, adalah mekanisme penyembunyian data yang membungkus data dan informasi dalam sebuah kapsul untuk membatasi akses dari luar dunia. Perbedaan dalam "Fungsi"
  2. Abstraksi dan Enkapsulasi - Abstraksi adalah mekanisme penyembunyian data yang hanya menyoroti fitur penting untuk membuat program yang kompleks menjadi lebih sederhana, sementara enkapsulasi, di lain pihak, adalah metode pengikatan data dan kode menjadi satu kesatuan. Idenya adalah untuk melindungi detail implementasi dari akses eksternal. Perbedaan dalam "Implementasi" Abstraksi dan Enkapsulasi
  3. - Abstraksi diimplementasikan dengan menggunakan kelas dan antarmuka abstrak, sedangkan enkapsulasi diimplementasikan dengan menggunakan pengubah akses. Lima jenis pengubah digunakan untuk mengenkapsulasi data: Pribadi, Publik, Internal, Protected, dan Protected Internal. Perbedaan dalam "Konsep"
  4. Abstraksi dan Enkapsulasi - Gagasan di balik abstraksi adalah memusatkan perhatian pada apa dan bukan bagaimana caranya. Enkapsulasi menyembunyikan mekanika internal bagaimana caranya. Misalnya, saat mengendarai mobil, Anda tahu persis apa pedal rem tapi Anda mungkin tidak tahu keseluruhan mekanisme di belakangnya karena datanya terenkapsulasi. Perbedaan dalam "Contoh" dari Abstraksi dan Enkapsulasi
  5. - Mari ambil contoh smartphone. Anda tahu apa yang dilakukannya tapi Anda mungkin tidak tahu bagaimana melakukan apa yang dilakukannya. Anda hanya peduli dengan tampilan layar dan tombol keypad daripada mengkhawatirkan sirkuit dalamnya. Di sini, smartphone adalah abstrak dimana rincian implementasi bagian dalam dienkapsulasi. Abstraksi vs. Enkapsulasi dengan tabel perbandingan

Abstraksi

Enkapsulasi Ini hanya membahas rincian yang relevan dengan menyembunyikan yang tidak relevan untuk mengurangi kompleksitas sehingga meningkatkan efisiensi.
Ini mengikat data dan informasi bersama-sama ke dalam satu entitas untuk melindungi data dari sumber eksternal. Ini mengacu pada gagasan menyembunyikan data yang tidak diperlukan untuk tujuan presentasi.
Menyembunyikan data dan kode untuk membatasi akses yang tidak diinginkan. Ini berfokus pada apa dan bukan bagaimana caranya.
Menyembunyikan mekanika internal tentang bagaimana ia melakukan sesuatu. Menyembunyikan detail yang tidak perlu pada tingkat desain.
Ini juga menyembunyikan rincian tapi pada tingkat implementasi. Informasi dan data dipisahkan dari data yang relevan.
Informasi tersembunyi di dalam kapsul untuk akses yang dekat. Ini berhubungan dengan gagasan dan bukan kejadian.
Idenya adalah untuk melindungi data dari luar dunia. Ini diimplementasikan dengan menggunakan kelas dan antarmuka abstrak.
Ini diimplementasikan dengan menggunakan pengubah akses yang dilindungi, pribadi, dan paket-swasta. Ringkasan

Sementara keduanya adalah konsep OOP yang terkait dengan persembunyian data, keduanya sangat berbeda satu sama lain. Abstraksi juga berhubungan dengan persembunyian seperti enkapsulasi, namun sementara kompleksitas bekas menyembunyikan, yang terakhir menyimpan data yang dienkapsulasi dengan mengendalikan akses terhadapnya. Abstraksi mengacu pada konsep yang hanya mewakili fitur yang diperlukan dengan menyembunyikan rincian yang tidak relevan untuk mengurangi kompleksitas aplikasi sehingga meningkatkan efisiensi. Enkapsulasi, di sisi lain, mengacu pada konsep menyembunyikan semua mekanisme internal sebuah program untuk melindungi informasi dari akses yang tidak diinginkan. Ini mengikat data dan informasi bersama menjadi satu komponen dengan membatasi akses ke komponen lainnya.