Abstraksi dan Encapsulation kedua-duanya adalah konsep pengaturcaraan objek dasar (OOP) yang membolehkan anda untuk melaksanakan objek dunia sebenar ke dalam program dan kod. Walaupun kedua-duanya bergerak 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 secara umum. Hampir benar bahawa setiap enkapsulasi adalah abstraksi kerana kedua-duanya menyembunyikan sesuatu, namun, mereka mempunyai perbezaan yang saksama.
Abstraksi adalah konsep OOP asas yang memfokuskan pada hanya data yang berkaitan objek dan menyembunyikan semua butiran yang tidak relevan yang mungkin atau tidak mungkin untuk tingkah laku generik atau khusus. Ia menyembunyikan butiran latar belakang dan memberi penekanan kepada perkara penting untuk mengurangkan kerumitan dan meningkatkan kecekapan. Pada asasnya, 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 dinamakan 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 benar-benar 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.
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 menyembunyikan atribut untuk melindungi pembolehubah daripada akses luar supaya perubahan dalam satu bahagian aplikasi 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, bukannya wayarles atau tidak, dan lain-lain. Setiap butiran tunggal menerangkan tetikus tetapi tidak kira butirannya, itu hanya tetikus. Anda hanya memerlukan antara muka untuk menggunakan tetikus, yang dalam kes ini adalah penunjuk tetikus. Ini adalah enkapsulasi.
Walaupun kedua-duanya adalah konsep asas yang berkaitan dengan OOP dan mereka secara teknikal tidak dapat dipisahkan, mereka masih mempunyai perbezaan dalam banyak aspek.
Abstraksi | Encapsulation |
Ia hanya berkaitan dengan butiran yang relevan dengan menyembunyikan yang tidak relevan untuk mengurangkan kerumitan dan meningkatkan kecekapan. | Ia mengikat data dan maklumat bersama-sama ke dalam entiti tunggal 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 berurusan dengan idea dan bukannya peristiwa. | Ideanya adalah untuk melindungi data dari dunia luar. |
Ia dilaksanakan dengan menggunakan kelas dan antara muka abstrak. | Ia dilaksanakan menggunakan pengubahsuaian akses peribadi, dilindungi, dan pakej. |
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 mewakili hanya ciri-ciri yang diperlukan dengan menyembunyikan butiran yang tidak relevan untuk mengurangkan kerumitan sesuatu aplikasi dan 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.