Soru geriye doğru.
Halka açık olmayan bir işlevi yapmak için bir sebep aramazsınız. Başlamak için yanlış bir zihniyet var (bence). Akıl yürütme diğer tarafa gitmeli.
Başka bir deyişle - "neden özel yapacağım?" Diye sorma. "Neden herkese açık hale getireyim?" Diye sor.
Şüphe duyduğunuzda, açığa vurmayın. Ockham'ın jilet gibi bir şey - gerekli olanın ötesinde hakları çoğaltmayın.
DÜZENLEME: @Telastyn tarafından yorumlarda ortaya konan karşı davalara hitap etmek (burada genişletilmiş tartışmaları önlemek için):
Bunu zamanla duydum ve hatta uzunca bir süredir teşvik ettim, ama deneyimlerime göre işler çok özel olma eğilimindeydi.
Evet, bazen bir sınıf mirasa açıksa bu bir acıdır, ancak bazı özel yöntemleri (davranışını değiştirmek istediğiniz) geçersiz kılamazsınız.
Ama protected
yeterli olurdu - ve hala halka açık değil.
Her ne kadar dolaylı olarak erişildiyse de, “kamuya açık olmaması gereken şeylere” ulaşmak birçok kod çoğaltmasına ve ek yüke yol açar.
Sorunlu olursa, o zaman herkese açık yapın! Bahsettiğim zorunluluk var :)
Demek istediğim bunu yapamaz gerektiğidir ihtimale (YAGNI ve tüm).
Özel bir işlevi herkese açık kılmak, onu gizliliğe geri çekmek yerine her zaman daha kolay olduğunu unutmayın. İkincisi mevcut kodu kırma olasılığı yüksektir.