Ada banyak hal yang bisa dikatakan untuk menjawab pertanyaan ini, berikut adalah pemikiran pertama yang muncul di benak saya:
Pertama dan terpenting, perlu diingat bahwa private
ini hanya konstruksi waktu kompilasi - tidak dapat diterapkan pada waktu proses (lihat di sini dan di sini untuk diskusi yang relevan). Karena itu, harap lepaskan diri Anda dari gagasan apa pun private
yang berguna dengan cara apa pun untuk tujuan keamanan. Bukan itu masalahnya.
Ini adalah tentang enkapsulasi, dan ketika Anda memiliki lapangan atau metode pada komponen Anda bahwa Anda ingin merangkum di dalamnya, sehingga jelas bahwa itu tidak boleh diakses dari tempat lain, maka Anda harus benar-benar membuatnya private
: Itu ini apa private
bagi: Ini menandakan niat Anda bahwa apa pun yang Anda kenakan tidak boleh disentuh dari luar kelas.
Hal yang sama berlaku untuk public
: Ini juga merupakan konstruksi hanya waktu kompilasi, jadi fakta bahwa anggota kelas secara public
default, sementara true, memiliki arti nol tepat pada waktu proses. Tetapi ketika Anda memiliki anggota yang secara eksplisit ingin Anda tunjukkan ke dunia luar sebagai bagian dari API kelas Anda, Anda harus benar-benar membuatnya public
untuk menandakan maksud ini: Untuk itulah public
.
Ini semua berlaku untuk Ketikan pada umumnya. Khususnya di Angular, pasti ada kasus penggunaan yang valid untuk memiliki anggota publik di kelas komponen: Misalnya, saat menerapkan pola container / komponen (alias pintar / bodoh ), dengan anak-anak "bodoh" yang menyuntikkan orang tua "pintar" melalui injeksi konstruktor, sangat penting untuk mengkomunikasikan maksud Anda tentang anggota orang tua yang seharusnya dan tidak boleh disentuh oleh anak-anak: Jika tidak, jangan kaget ketika Anda melihat anak-anak bodoh itu bermain-main di lemari minuman orang tua mereka.
Jadi, jawaban saya untuk pertanyaan Anda:
haruskah saya selalu menambahkan pribadi untuk semuanya seperti di bawah ini?
adalah tegas tidak ada . Anda tidak boleh selalu menambahkan private
karena dengan melakukan itu Anda akan menggagalkan tujuan kata kunci, karena kata kunci tidak lagi menandakan maksud apa pun jika Anda meletakkannya di mana-mana: Anda sebaiknya tidak meletakkannya di mana pun.