Ho appena finito Java efficace e l'ho adorato. Sto cercando di ridefinire uno dei miei programmi per trarre vantaggio da ciò che ho imparato, e ho un sacco di domande riguardo l'immutabilità.
Il mio programma è in gran parte costruito attorno a una classe del modello che rappresenta un promemoria, che è memorizzato in un fornitore di contenuti. Questo articolo suggerisce che, poiché rappresenta i dati contenuti nel fornitore di contenuti, potrei creare una classe immutabile che chiama semplicemente al fornitore di contenuti. Ma per quanto ne so, questo autore ha torto e questa è una pessima idea. A me sembra che sarebbe molto imprevedibile chiamare il fornitore di contenuti tutto il tempo, che quindi interroga un database SQLite, e non sono incline a seguire questo modello.
La mia altra domanda riguarda diverse piccole classi che ho dove nessuno dei loro membri cambia dopo che sono stati creati, ma fanno chiamate asincrone ai servizi di sistema e restituiscono la risposta lungo un'interfaccia. Una classe del genere può essere immutabile? La classe stessa è stateless e non cambia mai una volta creata, ma chiama altre classi strettamente legate allo stato del dispositivo.