Sto leggendo il libro di rifattorizzazione di Martin Fowlers. A pagina 110 parla di "Sostituisci metodo con oggetto metodo" dove trasforma un metodo con variabili locali in una classe con variabili di istanza.
Il risultato è una classe chiamata: PriceCalculator con tre variabili di istanza, ad esempio primaryBasePrice, secondaryBasePrice e prezzo base teritario.
Recentemente ho fatto una domanda su variabili locali e variabili di istanza: Quando devono essere utilizzate variabili locali su variabili di istanza? . Sono d'accordo con la risposta di Samuels e la risposta di Timothy Truckles - Ho sempre usato il principio della visibilità minima nel mio lavoro.
Tuttavia, il refactoring di Fowlers sembra contraddirlo e mi confonde. Anche tutti i diagrammi delle classi nel mio libro UML sembrano contraddire il principio della visibilità minima, ovvero usano una classe con variabili di istanza indipendentemente dallo scenario come questo: link . Capisco che devi scendere a compromessi in questo gioco quando consideri le prestazioni, ecc. Il design "migliore" ha variabili di istanza piuttosto che variabili locali?