Perbezaan antara Abstraksi dan Encapsulation Perbezaan Antara

Anonim

anda untuk melaksanakan objek dunia sebenar ke dalam program dan kod. Walaupun kedua-dua belah tangan, mereka sangat berbeza antara satu sama lain. Walaupun setiap kaedah adalah enkapsulasi, ia juga merupakan abstraksi. Secara ringkas, apabila anda meletakkan perkara yang berbeza bersama-sama untuk membuat entiti, anda sebenarnya membuat konsep - abstrak. Walaupun kedua-duanya secara teknikal tidak dapat dipisahkan, mereka tidak mempunyai apa-apa yang sama. Ia hampir benar bahawa setiap enkapsulasi adalah abstrak kerana kedua-duanya menyembunyikan sesuatu, namun, mereka mempunyai perbezaan yang saksama.

Apa itu Abstraksi?

Abstraksi adalah konsep OOP asas yang memfokuskan pada hanya data yang berkaitan dengan objek dan menyembunyikan semua butiran yang tidak relevan yang mungkin atau mungkin tidak untuk tingkah laku generik atau khusus. Ia menyembunyikan butiran latar belakang dan memberi penekanan kepada perkara penting untuk mengurangkan kerumitan dan meningkatkan kecekapan. Pada dasarnya, abstraksi adalah alat pengaturcaraan untuk mengurus kerumitan. Abstraksi memberi tumpuan kepada idea dan bukannya peristiwa. Ia menyembunyikan maklumat mengenai tahap reka bentuk dengan menyediakan fungsi kepada pengguna. Objek yang dihasilkan juga boleh dipanggil abstraksi. Programmer memastikan entiti yang diberi nama akan mempunyai semua aspek penting termasuk dan tidak ada yang tidak relevan.

Mari kita ambil contoh abstraksi dunia nyata. Mari kita pertimbangkan kes kenderaan, yang dalam kes ini adalah kenderaan anda. Seorang mekanik cuba membaiki kereta anda atau katakan bahagian tertentu kereta anda. Di sini, anda adalah pengguna dan anda tidak mahu masuk ke dalam spesifik kereta anda atau bahagian yang sebenarnya pecah. Anda tidak benar-benar mengambil berat mengenai perkara itu; anda hanya mahu kenderaan anda kembali dalam keadaan asalnya tanpa perlu risau mengenai butirannya. Jadi, anda sebenarnya memberitahu mekanik apa yang anda mahu dengan mengasingkan bahagian pelaksanaan. Ini adalah abstraksi. Anda memberi tumpuan kepada perkara yang paling penting, yang menjadikan kereta anda tetap, dan bukannya memfokuskan pada perkara yang spesifik.

Apa itu Encapsulation?

Encapsulation adalah satu lagi konsep OOP yang mengikat data dan fungsi menjadi komponen tunggal sambil menyekat akses kepada beberapa komponen. Ia merupakan salah satu konsep utama OOP yang membungkus data dan maklumat di bawah satu unit. Dalam istilah teknikal, enkapsulasi bermaksud sifat bersembunyi untuk melindungi pembolehubah daripada akses luar supaya perubahan dalam satu bahagian permohonan tidak akan mempengaruhi bahagian lain. Sebaliknya, dengan membuat maklumat lebih terbuka, anda akan membahayakan penyalahgunaan data. Ia menyediakan integriti asas kepada data dengan melindunginya dari dunia luar. Secara ringkas, ia menyembunyikan butiran tambahan dari dunia luar.

Mari kita ambil contoh tetikus Bluetooth.Anda hanya perlu tahu tentang tingkah laku peranti tanpa bimbang tentang butiran pelaksanaan seperti jenis sensor yang ada tetikus, sama ada wayarles atau tidak, dan lain-lain. Setiap butiran tunggal menerangkan tetikus tetapi tidak kira butiran, itu hanya tetikus. Anda hanya memerlukan antara muka untuk menggunakan tetikus, yang dalam kes ini adalah penunjuk tetikus. Ini adalah enkapsulasi.

Perbezaan antara Abstraksi dan Encapsulation

Walaupun kedua-duanya adalah konsep asas yang berkaitan dengan OOP dan mereka secara teknikal tidak dapat dipisahkan, mereka masih mempunyai perbezaan dalam banyak aspek.

  1. Perbezaan dalam "Definisi" Abstraksi dan Encapsulation - Abstraksi adalah konsep OOP asas yang menekankan pada semua aspek penting objek dengan menyembunyikan butiran yang tidak relevan untuk meningkatkan kecekapan dan menghapuskan kerumitan. Sebaliknya, encapsulation adalah mekanisme penyembunyian data yang membungkus data dan maklumat dalam kapsul untuk menyekat akses dari dunia luar.
  2. Perbezaan dalam "Fungsi" Abstraksi dan Encapsulation - Abstraksi adalah mekanisme penyembunyian data yang hanya menyoroti ciri-ciri penting untuk membuat program kompleks lebih mudah, sementara enkapsulasi, sebaliknya, merupakan kaedah mengikat data dan kod ke satu entiti tunggal. Idea ini adalah untuk melindungi perincian pelaksanaan dari akses luaran.
  3. Perbezaan dalam "Pelaksanaan" Abstraksi dan Encapsulation - Abstraksi dilaksanakan menggunakan kelas abstrak dan antara muka, sementara enkapsulasi dilaksanakan menggunakan pengubah akses. Lima jenis pengubah digunakan untuk merangkum data: Private, Public, Internal, Protected, and Protected Internal.
  4. Perbezaan dalam "Konsep" Abstraksi dan Encapsulation - Idea di sebalik abstraksi adalah untuk memberi tumpuan kepada apa yang bukannya bagaimana. Encapsulation menyembunyikan mekanik dalaman bagaimana. Contohnya, apabila anda memandu kereta, anda tahu betul apa pedal brek itu tetapi anda mungkin tidak tahu keseluruhan mekanisme di belakangnya kerana data itu terkandung.
  5. Perbezaan dalam "Contoh" Abstraksi dan Encapsulation - Mari ambil contoh telefon pintar. Anda tahu apa yang berlaku tetapi anda mungkin tidak tahu bagaimana ia melakukan apa yang dilakukannya. Anda hanya peduli dengan skrin paparan dan butang papan kekunci dan bukannya membimbangkan tentang litar dalamannya. Di sini, telefon pintar adalah abstrak di mana butiran pelaksanaan dalaman dikemas.

Abstraksi vs Encapsulation dengan jadual perbandingan

Abstraksi Encapsulation
Ia hanya berkaitan dengan butiran yang berkaitan dengan menyembunyikan yang tidak relevan untuk mengurangkan kerumitan dan meningkatkan kecekapan. Ia mengikat data dan maklumat bersama-sama ke dalam satu entiti untuk melindungi data dari sumber luaran.
Ia merujuk kepada idea menyembunyikan data yang tidak diperlukan untuk tujuan persembahan. Ia menyembunyikan data dan kod untuk menyekat akses yang tidak diingini.
Ia memberi tumpuan kepada apa yang bukannya bagaimana. Ia menyembunyikan mekanik dalaman bagaimana ia melakukan sesuatu.
Ia menyembunyikan maklumat yang tidak perlu pada tahap reka bentuk. Ia juga menyembunyikan maklumat tetapi pada tahap pelaksanaan.
Maklumat dan data dipisahkan daripada data yang berkaitan. Maklumat tersembunyi di dalam kapsul untuk akses dekat.
Ia berkaitan dengan idea dan bukannya peristiwa. Ideanya ialah untuk melindungi data dari dunia luar.
Ia dilaksanakan menggunakan kelas abstrak dan antara muka. Ia dilaksanakan menggunakan pengubah akses akses yang dilindungi, peribadi, dan pakej-peribadi.

Ringkasan

Walaupun kedua-duanya adalah konsep OOP yang berkaitan dengan data bersembunyi, mereka agak berbeza antara satu sama lain. Pengekstrakan juga berkaitan dengan bersembunyi seperti enkapsulasi, tetapi sementara yang pertama menyembunyikan kerumitan, yang terakhir menyimpan data yang disatukan dengan mengawal akses kepada mereka. Pengekstrakan merujuk kepada konsep yang mewakili hanya ciri-ciri yang diperlukan dengan menyembunyikan butiran yang tidak relevan untuk mengurangkan kerumitan sesuatu aplikasi dengan itu meningkatkan kecekapan. Sebaliknya, encapsulation merujuk kepada konsep menyembunyikan semua mekanik dalaman sesuatu program untuk melindungi maklumat daripada akses yang tidak diingini. Ia mengikat data dan maklumat bersama-sama ke dalam satu komponen dengan menyekat akses kepada komponen lain.