Perbedaan antara abstraksi dan enkapsulasi

Perbedaan antara abstraksi dan enkapsulasi

Abstraksi dan enkapsulasi keduanya adalah konsep pemrograman berorientasi objek dasar (OOP) yang memungkinkan Anda untuk mengimplementasikan objek dunia nyata ke dalam program dan kode. Sementara keduanya berjalan beriringan, mereka sangat berbeda satu sama lain. Meskipun setiap metode adalah enkapsulasi, itu juga merupakan abstraksi. Secara sederhana, ketika Anda menyatukan berbagai hal untuk membuat entitas, Anda benar -benar membuat konsep - abstrak. Meskipun keduanya secara teknis tidak dapat dipisahkan, mereka benar -benar tidak memiliki kesamaan yang sama. Hampir benar bahwa setiap enkapsulasi adalah abstraksi karena mereka berdua menyembunyikan sesuatu, namun, mereka memiliki perbedaan yang adil dari perbedaan.

Apa itu abstraksi?

Abstraksi adalah konsep OOP dasar yang berfokus hanya pada data yang relevan dari suatu objek 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 -poin penting untuk mengurangi kompleksitas dan meningkatkan efisiensi. Pada dasarnya, abstraksi adalah alat pemrograman untuk mengelola kompleksitas. Abstraksi berfokus pada ide daripada peristiwa. Itu menyembunyikan detail pada tingkat desain dengan memberikan fungsionalitas kepada pengguna. Objek yang dihasilkan juga dapat disebut abstraksi. Programmer memastikan entitas yang disebutkan akan memiliki semua aspek penting termasuk dan tidak ada yang tidak relevan.

Mari kita ambil contoh abstraksi dunia nyata. Mari kita 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 masuk ke spesifik mobil Anda atau bagian apa yang sebenarnya rusak. Anda sebenarnya tidak peduli dengan hal -hal itu; Anda hanya ingin kendaraan Anda kembali dalam kondisi aslinya tanpa khawatir tentang detailnya. Jadi, Anda benar -benar memberi tahu mekanik apa yang Anda inginkan dengan memisahkan bagian implementasi. Ini abstraksi. Anda fokus pada hal yang paling penting, yaitu memperbaiki mobil Anda, daripada berfokus pada spesifik.

Apa itu enkapsulasi?

Enkapsulasi adalah konsep OOP lain yang mengikat data dan fungsi menjadi satu komponen sambil membatasi akses ke beberapa komponen. Ini adalah salah satu konsep mendasar utama OOP yang membungkus data dan informasi di bawah satu unit. Dalam istilah teknis, enkapsulasi berarti menyembunyikan atribut ke variabel perisai dari akses luar sehingga perubahan dalam satu bagian dari suatu aplikasi tidak akan mempengaruhi bagian lain. Sebaliknya, dengan membuat informasi lebih terbuka, Anda akan mengambil risiko penyalahgunaan data. Ini memberikan integritas dasar untuk data dengan melindunginya dari dunia luar. Secara sederhana, ini menyembunyikan detail tambahan dari dunia luar.

Mari kita ambil contoh mouse bluetooth. Anda hanya perlu tahu tentang perilaku perangkat tanpa khawatir tentang detail implementasi seperti sensor seperti apa yang dimiliki mouse, apakah itu nirkabel atau tidak, dll. Setiap detail menjelaskan mouse tetapi terlepas dari detailnya, itu hanya mouse. Anda hanya perlu antarmuka untuk menggunakan mouse, yang dalam hal ini adalah penunjuk mouse. Ini adalah enkapsulasi.

Perbedaan antara abstraksi dan enkapsulasi

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

  1. Perbedaan "Definisi" Abstraksi dan Enkapsulasi - Abstraksi adalah konsep OOP mendasar yang menekankan pada semua aspek penting dari suatu objek dengan menyembunyikan detail yang tidak relevan untuk meningkatkan efisiensi dan menghilangkan kompleksitas. Enkapsulasi, di sisi lain, adalah mekanisme persembunyian data yang membungkus data dan informasi dalam kapsul untuk membatasi akses dari dunia luar.
  2. Perbedaan dalam "fungsi" abstraksi dan enkapsulasi- Abstraksi adalah mekanisme persembunyian data yang hanya menyoroti fitur -fitur penting untuk membuat program yang kompleks lebih sederhana, sementara enkapsulasi, di sisi lain, adalah metode pengikatan data dan kode menjadi satu entitas tunggal. Idenya adalah untuk melindungi detail implementasi dari akses eksternal.
  3. Perbedaan "implementasi" abstraksi dan enkapsulasi - Abstraksi diimplementasikan menggunakan kelas abstrak dan antarmuka, sementara enkapsulasi diimplementasikan menggunakan pengubah akses. Lima jenis pengubah digunakan untuk merangkum data: pribadi, publik, internal, dilindungi, dan dilindungi internal.
  4. Perbedaan "Konsep" abstraksi dan enkapsulasi- Gagasan di balik abstraksi adalah untuk fokus pada apa daripada bagaimana. Enkapsulasi menyembunyikan mekanisme internal tentang bagaimana. Misalnya, ketika Anda mengendarai mobil, Anda tahu persis apa yang dilakukan pedal rem tetapi Anda mungkin tidak tahu seluruh mekanisme di belakangnya karena data dienkapsulasi.
  5. Perbedaan "contoh" abstraksi dan enkapsulasi - Mari kita ambil contoh smartphone. Anda tahu apa fungsinya tetapi Anda mungkin tidak tahu bagaimana keadaannya. Anda hanya peduli dengan layar layar dan tombol keypad daripada mengkhawatirkan sirkuit dalamnya. Di sini, smartphone adalah abstrak di mana detail implementasi dalam dienkapsulasi.

Abstraksi vs. Enkapsulasi dengan tabel perbandingan

Abstraksi Enkapsulasi
Ini hanya menangani detail yang relevan dengan menyembunyikan yang tidak relevan untuk mengurangi kompleksitas sehingga meningkatkan efisiensi. Ini mengikat data dan informasi bersama menjadi satu entitas untuk melindungi data dari sumber eksternal.
Ini mengacu pada gagasan menyembunyikan data yang tidak diperlukan untuk tujuan presentasi. Itu menyembunyikan data dan kode untuk membatasi akses yang tidak diinginkan.
Itu berfokus pada apa daripada bagaimana. Itu menyembunyikan mekanisme internal tentang bagaimana ia melakukan sesuatu.
Itu menyembunyikan detail yang tidak perlu pada tingkat desain. Itu juga menyembunyikan detailnya tetapi pada tingkat implementasi.
Informasi dan data dipisahkan dari data yang relevan. Informasi disembunyikan di dalam kapsul untuk akses dekat.
Ini berkaitan dengan ide daripada peristiwa. Idenya adalah untuk melindungi data dari dunia luar.
Itu diimplementasikan menggunakan kelas abstrak dan antarmuka. Ini diimplementasikan menggunakan pengubah akses yang dilindungi, pribadi, dan paket-pribadi.

Ringkasan

Meskipun keduanya adalah konsep OOP yang terkait dengan persembunyian data, mereka sangat berbeda satu sama lain. Abstraksi juga berkaitan dengan persembunyian seperti enkapsulasi, tetapi sementara yang pertama menyembunyikan kompleksitas, yang terakhir menyimpan data yang diterapkannya dengan mengendalikan akses ke mereka. Abstraksi mengacu pada konsep mewakili hanya fitur yang diperlukan dengan menyembunyikan detail yang tidak relevan untuk mengurangi kompleksitas aplikasi sehingga meningkatkan efisiensi. Enkapsulasi, di sisi lain, mengacu pada konsep menyembunyikan semua mekanisme internal suatu program untuk melindungi informasi dari akses yang tidak diinginkan. Ini mengikat data dan informasi bersama menjadi satu komponen dengan membatasi akses ke komponen lain.