Sono un fan di Dependency Injection , tuttavia non so quanto entrambi i metodi public e private all'interno di una classe dovrebbero essere liberamente accoppiati.
Solo per immaginarlo meglio, quando ho projectId e userId come proprietà private nella mia classe, ed entrambi hanno il proprio setter metodi che eseguiranno anche la convalida dell'input - generando un errore in caso di input imprevisti, quindi non è meglio che tutti i metodi della classe si basino su queste proprietà invece di ottenerle tramite gli argomenti del metodo 'e ripetere l'intero convalida, ecc. ancora?
In questo caso i metodi saranno strettamente legati alla classe stessa e probabilmente anche al costruttore , ma il vantaggio è che tutti i metodi possono facilmente contare su setter metodi e supporteranno sempre anche che i dati corretti siano sempre disponibili per l'elaborazione - perché altrimenti il setter avrebbe dovuto generare un'eccezione.
Questo mi sembra molto utile e posso rendere tutte le classi e le librerie liberamente accoppiate in un modo in cui non dipendono l'una dall'altra, tuttavia la mia domanda è, può un metodo all'interno di una classe essere dipendente dalle proprietà della classe se stesso o no? È considerato come una cattiva pratica?