Perbezaan antara enkapsulasi dan abstraksi

Perbezaan antara enkapsulasi dan abstraksi

Enkapsulasi vs abstraksi

Enkapsulasi dan abstraksi adalah dua konsep yang berbeza tetapi berkaitan yang terdapat dalam bahasa OOP (pengaturcaraan berorientasikan objek). Enkapsulasi adalah konsep menggabungkan data dan tingkah laku bersama sebagai entiti tunggal. Sebaliknya, abstraksi adalah proses menyampaikan bagaimana entiti berkelakuan \ kelihatan bertentangan dengan bagaimana ia dilaksanakan.

Apa itu enkapsulasi?

Enkapsulasi adalah proses membungkus data dan operasi yang beroperasi pada mereka ke entiti tunggal. Ini pada dasarnya bermaksud bahawa untuk mengakses data, kaedah yang telah ditetapkan tertentu harus digunakan. Dengan kata lain, data terkandung tidak boleh diakses secara langsung. Ini memastikan bahawa integriti data dipelihara kerana pengguna tidak dapat mengakses dan mengubah suai data secara langsung seperti yang dia kehendaki. Pengguna akan mendapat atau menetapkan nilai data hanya melalui kaedah yang tersedia secara terbuka kepada pengguna. Kaedah ini biasanya memberikan pengesahan data supaya hanya data dalam format yang sesuai dibenarkan dimasukkan ke dalam bidang. Oleh itu, faedah enkapsulasi adalah tiga kali ganda. Melalui enkapsulasi, pengaturcara dapat membuat bidang bacaan kelas sahaja atau menulis sahaja. Kedua, kelas boleh mempunyai kawalan penuh ke atas apa yang disimpan dalam bidangnya. Akhirnya, pengguna kelas tidak perlu bimbang bagaimana datanya disimpan. Di Java, pengaturcara dapat mengisytiharkan semua pemboleh ubah contoh untuk bersendirian dan menyediakan kaedah mendapatkan dan menetapkan (yang awam) untuk mengakses dan mengubah suai medan persendirian.

Apa itu abstraksi?

Abstraksi adalah proses memisahkan butiran persembahan dari butiran pelaksanaan. Ini dilakukan supaya pemaju dibebaskan dari perincian pelaksanaan yang lebih kompleks. Sebaliknya, pengaturcara boleh memberi tumpuan kepada persembahan atau butiran tingkah laku entiti. Secara ringkas, abstraksi memberi tumpuan kepada bagaimana entiti tertentu dapat digunakan dan bukannya bagaimana ia dilaksanakan. Abstraksi pada dasarnya menyembunyikan butiran pelaksanaan, sehingga walaupun metodologi pelaksanaan berubah dari masa ke masa, pengaturcara tidak perlu risau bagaimana ia akan mempengaruhi programnya. Sistem boleh dicabut dalam beberapa lapisan atau tahap. Sebagai contoh, lapisan abstraksi peringkat rendah akan mendedahkan butiran perkakasan, sementara abstraksi peringkat tinggi hanya akan mendedahkan logik perniagaan entiti. Istilah abstraksi boleh digunakan untuk merujuk kepada kedua -dua entiti dan proses dan ini membawa kepada kekeliruan. Sebagai proses, abstraksi bermaksud mengekstrak butiran penting sambil mengabaikan butir -butir tidak penting bagi item atau sekumpulan item, sementara sebagai entiti, abstraksi bermaksud model atau pandangan entiti dengan hanya butiran penting. Di Java, pengaturcara boleh menggunakan kata kunci abstrak untuk mengisytiharkan kelas sebagai entiti abstrak, yang mewakili penentuan penting yang mencirikan entiti dunia sebenar.

Apakah perbezaan antara enkapsulasi dan abstraksi?

Walaupun enkapsulasi dan abstraksi adalah konsep yang sangat berkaitan yang terdapat dalam bahasa pengaturcaraan berorientasikan objek, mereka mempunyai perbezaan utama. Abstraksi adalah teknik, yang membantu kita mengenal pasti apa yang harus dilihat dan apa yang harus disembunyikan. Enkapsulasi adalah teknik untuk membungkus maklumat sedemikian rupa sehingga dapat dilihat apa yang harus dapat dilihat dan menyembunyikan apa yang harus disembunyikan. Dengan kata lain, enkapsulasi dapat dikenal pasti sebagai satu langkah di luar abstraksi. Walaupun abstraksi mengurangkan objek dunia nyata kepada ciri -ciri penentuan pentingnya, enkapsulasi memanjangkan idea ini dengan memodelkan dan menghubungkan fungsi ini entiti tersebut.