Best practice per la modifica degli attributi raccolta funzionalmente

voti
14

Sono curioso come fare per implementare una classe che obbedisce a regole rigorose di programmazione funzionale.

Per esempio, se ho una classe che ha due attributi e ho un metodo che li modifica, come dovrei andare a fare così? Gli attributi sarebbero vals private, e il metodo avrebbe dovuto restituire una nuova istanza dell'attributo ogni volta che lo modifica. Questo va bene, tranne che mi piacerebbe tenerlo contenuta, il che significa avrei bisogno di un modo per impostare il val.

Quale sarebbe il modo migliore per farlo in modo che non ho migliaia di istanze di esempio, una collezione, galleggianti intorno a memoria?

È pubblicato 27/07/2014 alle 17:27
dall'utente
In altre lingue...                            


1 risposte

voti
0

Questa è la mia opinione, ma; proprio come le classi case fanno, vorrei implementare un copymetodo di sorta sulla classe per rendere possibile la modifica, mantenendo l'immutabilità, ma esiste qualche caso che non posso fare per averlo mutabile; ad esempio, quando si prevede che qualcosa per rendere l'operazione di copia troppo grande e lenta per la classe; come quando la classe ha così tanti membri spesso modificati. E non preoccupatevi di migliaia di casi che galleggiano intorno in memoria, perché sono automaticamente GC'ed, in modo che il problema più attuale è il costo del tempo di copiare le istanze della classe. La prego di dirmi se il mio parere è in qualche modo sbagliato :)

Risposto il 27/07/2014 a 17:57
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more