È corretto dire che è buona norma impostare tutto su privato quando si definisce una classe?
Ad esempio, per la mia interfaccia pubblica impostarei la mia classe qualcosa del genere:
class foo {
private var x
private var y
//even get and set are private,
//public only if necessary
private get/set method for variables
//main function
private coreFunc () {...}
//helper function
public callCoreFunc() {
coreFunc()
}
}
Sono abituato (e mi sono abituato al mio insegnante di algoritmi) che tutto in una classe dovrebbe essere privato, tranne i metodi che l'utente deve chiamare (con la funzione di helper avvolta.)
Questo è un buon modo per vedere "l'interfaccia pubblica" o è troppo severo?