OK, jadi mudah-mudahan ini adalah pertanyaan yang cukup subjektif untuk Programmer, tetapi begini saja. Saya terus memperluas pengetahuan saya tentang bahasa dan praktik rekayasa perangkat lunak ... dan saya telah mengalami sesuatu yang tidak masuk akal bagi saya sama sekali.
Dalam C ++, deklarasi kelas menyertakan private:
metode dan parameter dalam file header, yang, secara teoritis, adalah apa yang Anda berikan kepada pengguna untuk disertakan jika Anda menjadikannya lib.
Di Objective-C, @interface
lakukan hal yang hampir sama, memaksa Anda untuk membuat daftar anggota pribadi Anda (setidaknya, ada cara untuk mendapatkan metode pribadi dalam file implementasi).
Dari apa yang dapat saya katakan, Java dan C # memungkinkan Anda untuk menyediakan antarmuka / protokol yang dapat mendeklarasikan semua properti / metode yang dapat diakses publik dan memberi koder kemampuan untuk menyembunyikan semua detail implementasi dalam file implementasi.
Mengapa? Enkapsulasi adalah salah satu prinsip utama OOP, mengapa C ++ dan Obj-C tidak memiliki kemampuan dasar ini? Apakah ada semacam praktik kerja terbaik untuk Obj-C atau C ++ yang menyembunyikan semua implementasi?
Terima kasih,