Saya telah melalui banyak teori tentang apa itu enkapsulasi dan tiga teknik penerapannya, yaitu Asosiasi, Agregasi dan Komposisi.
Apa yang saya temukan adalah :
Enkapsulasi
Enkapsulasi adalah teknik membuat bidang dalam kelas pribadi dan menyediakan akses ke bidang melalui metode publik. Jika bidang dinyatakan pribadi, itu tidak dapat diakses oleh siapa pun di luar kelas, sehingga menyembunyikan bidang di dalam kelas. Karena alasan ini, enkapsulasi juga disebut sebagai penyembunyian data.
Enkapsulasi dapat digambarkan sebagai penghalang pelindung yang mencegah kode dan data diakses secara acak oleh kode lain yang didefinisikan di luar kelas. Akses ke data dan kode dikontrol ketat oleh sebuah antarmuka.
Manfaat utama enkapsulasi adalah kemampuan untuk memodifikasi kode kami yang diterapkan tanpa melanggar kode orang lain yang menggunakan kode kami. Dengan fitur ini Enkapsulasi memberikan rawatan, fleksibilitas, dan ekstensibilitas ke kode kami.
Asosiasi
Asosiasi adalah hubungan di mana semua objek memiliki siklus hidupnya sendiri dan tidak ada pemilik. Mari kita ambil contoh Guru dan Siswa. Banyak siswa dapat bergaul dengan satu guru dan satu siswa dapat bergaul dengan banyak guru, tetapi tidak ada kepemilikan antara objek dan keduanya memiliki siklus hidup mereka sendiri. Keduanya dapat membuat dan menghapus secara mandiri.
Pengumpulan
Agregasi adalah bentuk khusus dari Asosiasi di mana semua objek memiliki siklus hidup mereka sendiri, tetapi ada kepemilikan dan objek anak tidak dapat milik objek orangtua lain. Mari kita ambil contoh Departemen dan guru. Seorang guru tidak dapat menjadi bagian dari banyak departemen, tetapi jika kami menghapus departemen, objek guru tidak akan hancur. Kita dapat menganggapnya sebagai hubungan "memiliki".
Komposisi
Komposisi sekali lagi merupakan bentuk khusus dari Agregasi dan kita dapat menyebutnya sebagai hubungan "kematian". Ini adalah tipe Agregasi yang kuat. Objek anak tidak memiliki siklus hidupnya dan jika objek induk menghapus semua objek anak juga akan dihapus. Mari kita ambil kembali contoh hubungan antara rumah dan kamar. Rumah dapat berisi beberapa kamar tetapi tidak ada kehidupan independen dari sebuah ruangan dan ruangan mana pun tidak dapat dimiliki oleh dua rumah yang berbeda. Jika kami menghapus rumah, ruangan akan secara otomatis dihapus.
Pertanyaannya adalah:
Sekarang ini semua adalah contoh dunia nyata. Saya mencari beberapa deskripsi tentang cara menggunakan teknik ini dalam kode kelas yang sebenarnya. Maksud saya apa gunanya menggunakan tiga teknik berbeda untuk enkapsulasi , Bagaimana teknik ini dapat diimplementasikan dan Bagaimana memilih teknik mana yang berlaku pada saat itu.