Bu soruya yanıt olarak söylenecek çok şey var, bunlar aklıma gelen ilk düşünceler:
Öncelikle ve en önemlisi, privatebunun yalnızca bir derleme zamanı yapısı olduğunu unutmayın - çalışma zamanında zorlanamaz ( ilgili tartışma için buraya ve buraya bakın ). Bu nedenle, lütfen privategüvenlik amacıyla herhangi bir şekilde yararlı olma düşüncelerinden kurtulun . Konu bu değil.
Bu ise kapsülleme hakkında ve size bileşeni üzerinde bir alanı veya yöntemi varken bunu başka bir yerde erişilebilir gerektiğini temizlemek yapma, içindeki kapsül istediğiniz, o zaman kesinlikle yapmalıdır private: Bu nedir privateiçindir: Niyetinize , üzerine koyduğunuz her şeye sınıf dışından dokunulmaması gerektiğini gösterir.
Aynısı için de geçerlidir public: Bu da yalnızca derleme zamanı olan bir yapıdır, bu nedenle sınıf üyelerinin publicvarsayılan olarak doğru olmasına rağmen çalışma zamanında tam olarak sıfır anlamı vardır. Ancak, sınıfınızın API'sinin bir parçası olarak dış dünyaya açık bir şekilde göstermeyi düşündüğünüz bir üyeniz olduğunda, kesinlikle publicbu amacı işaret etmelisiniz : Bunun publiciçin.
Bu, genel olarak Typescript için geçerlidir. Angular'da özellikle, bileşen sınıflarında genel üyelere sahip olmak için kesinlikle geçerli kullanım durumları vardır: Örneğin, kap / bileşen (aka akıllı / aptal ) modelini uygularken, "aptal" çocuklar yapıcı enjeksiyon yoluyla "akıllı" ebeveynleri enjekte ederken, Ebeveynin üyelerine çocuklar tarafından dokunulmaması ve dokunmaması gerektiği konusunda niyetinizi iletmeniz son derece önemlidir: Aksi takdirde, o aptal çocukları ebeveynlerinin likör dolabında dolaşırken yakaladığınızda şaşırmayın.
Öyleyse, sorunuza cevabım:
her zaman aşağıdaki gibi hepsi için özel eklemeli miyim?
bir empatik olduğunu hiçbir . Her zaman eklememelisiniz privateçünkü bunu yaparken anahtar kelimenin amacını yitirmiş olursunuz, çünkü artık her yere koyarsanız herhangi bir niyet sinyali vermez: Onu herhangi bir yere koymayabilirsiniz.