Ho sentito dire che le variabili dovrebbero essere dichiarate il più vicino possibile al loro utilizzo. Tuttavia, ho anche sentito che le variabili membro dovrebbero essere usate per descrivere qualcosa che è una caratteristica di una classe.
Trovo che questi due consigli a volte siano in conflitto. Ad esempio, supponiamo di avere una classe che analizza JSON utilizzando la libreria di jackson. L'oggetto parser di jackson che creo per consentire alla classe di essere in grado di analizzare JSON può essere considerato una "caratteristica" della classe? Senza l'oggetto parser la mia classe non può fare ciò che è stato progettato per fare.
Tuttavia, uso solo l'oggetto parser nella mia funzione di analisi principale - in quanto tale, potrei semplicemente creare una versione locale piuttosto che assegnargli un ambito di classe.
Forse quell'esempio è stato un po 'forzato, ma spero che trasmetta l'essenza della mia domanda. Cosa costituisce esattamente una "caratteristica" di una classe?