Best practice voor het wijzigen verzameling attributen functioneel

stemmen
14

Ik ben benieuwd hoe om te gaan over de implementatie van een klasse die strikt functioneel programmeren regels gehoorzaamt.

Bijvoorbeeld, als ik een klasse die twee attributen heeft en ik heb een methode die hen wijzigt, hoe zou ik gaan over het doen? De attributen zou zijn private vals, en de methode zou hebben om een ​​nieuw exemplaar terug van het attribuut elke keer dat het wijzigt het. Dat is prima, behalve dat ik zou willen houden het bevatte, wat betekent dat ik zou een manier om de val te stellen nodig.

Wat zou de beste manier om dit te doen, zodat ik niet duizenden exemplaren van laten we zeggen, een collectie, rondzweven in het geheugen?

De vraag is gesteld op 27/07/2014 om 17:27
user
In andere talen...                            


1 antwoorden

stemmen
0

Dit is mijn mening, maar; net als het geval klassen doen, zou ik een te implementeren copymethode van soorten van de klasse om de wijziging mogelijk te maken terwijl de onveranderlijkheid, maar er bestaat een aantal gevallen dat ik niet kan helpen om het te veranderlijk zijn; bijvoorbeeld als er iets wordt verwacht dat het kopiëren te groot en te traag voor de klas te maken; zoals wanneer de klas heeft zoveel vaak gemodificeerde leden. En maak je geen zorgen te maken over duizenden gevallen rondzweven in het geheugen, omdat ze automatisch GC'ed, dus hoe meer werkelijke probleem is de tijd kosten van het kopiëren van instances van de klasse. Kunt u mij vertellen of mijn mening is een of andere manier verkeerd :)

antwoordde op 27/07/2014 om 17:57
bron van user

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