Als «immutability» getaggte Fragen

23
Wenn unveränderliche Objekte gut sind, warum schaffen die Leute dann immer wieder veränderbare Objekte? [geschlossen]
Wenn unveränderliche Objekte¹ gut und einfach sind und Vorteile bei der gleichzeitigen Programmierung bieten, warum erstellen Programmierer dann immer wieder veränderbare Objekte²? Ich habe vier Jahre Erfahrung in der Java-Programmierung und aus meiner Sicht ist das erste, was Leute nach dem Erstellen einer Klasse tun,, Getter und Setter in der …

6
Warum enthält Java 8 keine unveränderlichen Sammlungen?
Das Java-Team hat eine Menge großartiger Arbeit geleistet, um Hindernisse für die funktionale Programmierung in Java 8 zu beseitigen. Insbesondere die Änderungen an den java.util-Sammlungen ermöglichen die Verkettung von Transformationen in sehr schnelle Streaming-Vorgänge. In Anbetracht der guten Arbeit, die sie beim Hinzufügen erstklassiger Funktionen und funktionaler Methoden zu Sammlungen …



4
Warum wurden Java-Sammlungen mit „optionalen Methoden“ in der Oberfläche implementiert?
Bei meiner ersten Implementierung zur Erweiterung des Java-Erfassungsframeworks war ich ziemlich überrascht, dass die Erfassungsschnittstelle als optional deklarierte Methoden enthält. Es wird erwartet, dass der Implementierer UnsupportedOperationExceptions auslöst, wenn dies nicht unterstützt wird. Dies fiel mir sofort als schlechte Wahl für das API-Design auf. Nachdem er viel von Joshua Blochs …



2
Was meinte Alan Kay mit „Aufgabe“ in der frühen Geschichte von Smalltalk?
Ich habe die frühe Geschichte von Smalltalk gelesen und es gibt einige Erwähnungen von "Aufgaben", die mich dazu bringen, mein Verständnis ihrer Bedeutung in Frage zu stellen: Obwohl OOP aus vielen Motivationen stammte, standen zwei im Mittelpunkt. Die große Aufgabe bestand darin, ein besseres Modulschema für komplexe Systeme zu finden, …

7
Komplette Unveränderlichkeit und objektorientierte Programmierung
In den meisten OOP-Sprachen sind Objekte im Allgemeinen mit einer begrenzten Anzahl von Ausnahmen (wie z. B. Tupel und Zeichenfolgen in Python) veränderbar. In den meisten funktionalen Sprachen sind Daten unveränderlich. Sowohl veränderbare als auch unveränderliche Objekte bringen eine ganze Reihe von Vor- und Nachteilen mit sich. Es gibt Sprachen, …

5
Beseitigt die Unveränderlichkeit die Notwendigkeit von Sperren bei der Multiprozessor-Programmierung vollständig?
Teil 1 Eindeutig minimiert Unveränderlichkeit die Notwendigkeit von Sperren bei der Multiprozessor-Programmierung. Beseitigt sie diese Notwendigkeit, oder gibt es Fälle, in denen Unveränderlichkeit allein nicht ausreicht? Es scheint mir, dass Sie die Verarbeitung und Kapselung des Status nur so lange aufschieben können, bis die meisten Programme tatsächlich etwas tun müssen …

7
Unterschied zwischen unveränderlich und const
Ich habe die Begriffe oft gesehen immutableund constsynonym verwendet. Nach meiner (geringen) Erfahrung unterscheiden sich die beiden jedoch stark in dem Vertrag, den sie im Code schließen: Unveränderlich macht der Vertrag, dass sich dieses Objekt überhaupt nicht ändert (zB Python-Tupel, Java-Strings). Const schließt den Vertrag, dass im Gültigkeitsbereich dieser Variablen …

5
Deklarieren Sie keine Schnittstellen für unveränderliche Objekte
Deklarieren Sie keine Schnittstellen für unveränderliche Objekte [BEARBEITEN] Wenn die fraglichen Objekte Datenübertragungsobjekte (DTOs) oder einfache alte Daten (PODs) darstellen Ist das eine vernünftige Richtlinie? Bisher habe ich häufig Schnittstellen für versiegelte Klassen erstellt, die unveränderlich sind (Daten können nicht geändert werden). Ich habe versucht, mich selbst zu hüten, die …
27 c#  immutability 


8
Unveränderlichkeit im Datenbankdesign fördern
Einer der Punkte in Joshua Blochs Effective Java ist die Vorstellung, dass Klassen die Mutation von Instanzen so wenig wie möglich und vorzugsweise überhaupt nicht zulassen sollten. Häufig werden die Daten eines Objekts in einer Datenbank in irgendeiner Form gespeichert. Dies hat mich dazu gebracht, über die Idee der Unveränderlichkeit …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.