Tujuan sebenarnya dari enkapsulasi adalah untuk mengumpulkan di satu tempat pengetahuan yang terkait dengan perangkat entitas tertentu, aturan penanganan dan operasi bersamanya. Enkapsulasi muncul jauh lebih awal dari yang diperkirakan. Modul dalam program C adalah enkapsulasi. Rutin assembler adalah enkapsulasi.
Kebalikan dari enkapsulasi adalah penyebaran pengetahuan tentang fungsi sesuatu di seluruh program.
Saat menerapkan perilaku, kami terkadang memilih dari beberapa opsi yang setara. Di masa depan, bobot salah satu opsi yang ditolak dapat meningkat di bawah pengaruh keadaan yang berubah, opsi yang dipilih dan diterapkan sebelumnya akan menjadi tidak berhasil. Mengubah keputusan akan jauh lebih mudah jika benar-benar semua detail implementasi opsi yang dipilih terkonsentrasi di satu tempat.
Contoh: bekerja dengan nilai moneter. Bukan rahasia lagi bahwa dalam banyak sistem e-commerce, nilai moneter diimplementasikan sebagai angka floating point. Saya pikir kita semua sadar bahwa dengan penambahan sederhana dari dua angka "bilangan bulat" yang direpresentasikan sebagai variabel titik mengambang, sebuah "sedikit non-bilangan bulat" dapat terbentuk. Oleh karena itu, dengan implementasi seperti itu, kita harus memasukkan panggilan fungsi pembulatan sana-sini. Ini adalah noda pengetahuan tentang struktur entitas di seluruh program. Enkapsulasi dalam kasus ini adalah untuk mengumpulkan (menyembunyikan) di satu tempat pengetahuan bahwa uang direpresentasikan sebagai nilai floating-point, dan bahwa uang harus terus-menerus dibulatkan selama operasi yang paling tidak bersalah. Sembunyikan sehingga ketika menggunakan entitas "uang", pertanyaan tentang pembulatan bahkan tidak masuk. Dengan enkapsulasi, tidak akan ada masalah menggantikan implementasi "uang" dari angka floating-point ke angka fixed-point.