Pytania otagowane jako immutability

23
Jeśli niezmienne obiekty są dobre, dlaczego ludzie wciąż tworzą obiekty zmienne? [Zamknięte]
Jeśli niezmienne obiekty¹ są dobre, proste i oferują korzyści w programowaniu współbieżnym, dlaczego programiści wciąż tworzą zmienne obiekty²? Mam cztery lata doświadczenia w programowaniu w Javie i, jak widzę, pierwszą rzeczą, którą ludzie robią po utworzeniu klasy, jest generowanie getterów i setterów w IDE (dzięki czemu jest zmienna). Czy brakuje …

6
Dlaczego Java 8 nie zawiera niezmiennych kolekcji?
Zespół Java wykonał mnóstwo świetnej pracy, usuwając bariery w programowaniu funkcjonalnym w Javie 8. W szczególności zmiany w kolekcjach java.util wykonują świetną robotę, łącząc przekształcenia w bardzo szybko przesyłane strumieniowo operacje. Biorąc pod uwagę, jak dobrą robotę wykonali, dodając pierwszorzędne funkcje i metody funkcjonalne do kolekcji, dlaczego całkowicie nie udało …

6
Czy niezmienność szkodzi wydajności w JavaScript?
Wydaje się, że w JavaScript jest ostatnio tendencja do traktowania struktur danych jako niezmiennych. Na przykład, jeśli chcesz zmienić pojedynczą właściwość obiektu, lepiej po prostu utwórz nowy obiekt za pomocą nowej właściwości i po prostu skopiuj wszystkie inne właściwości ze starego obiektu i pozwól, aby stary obiekt został wyrzucony. (I …


4
Dlaczego kolekcje Java zostały zaimplementowane za pomocą „opcjonalnych metod” w interfejsie?
Podczas mojej pierwszej implementacji rozszerzającej środowisko kolekcji Java byłem zaskoczony, widząc, że interfejs kolekcji zawiera metody zadeklarowane jako opcjonalne. Oczekuje się, że implementator zgłosi UnsupportedOperationExceptions, jeśli nie jest obsługiwany. Od razu uderzyło mnie to jako kiepski wybór interfejsu API. Po przeczytaniu dużej części doskonałej książki Joshuy Blocha „Skuteczna Java”, a …



2
Co Alan Kay miał na myśli przez „zadanie” we wczesnej historii Smalltalk?
Czytałem Wczesną historię Smalltalk i jest kilka wzmianek o „zadaniu”, które każą mi podważyć moje rozumienie jego znaczenia: Chociaż OOP pochodzi z wielu motywacji, dwie były kluczowe. Na dużą skalę należało znaleźć lepszy schemat modułów dla złożonych systemów obejmujących ukrywanie szczegółów, a na małą skalę - znaleźć bardziej elastyczną wersję …

7
Pełna niezmienność i programowanie obiektowe
W większości języków OOP obiekty są ogólnie modyfikowalne z ograniczonym zestawem wyjątków (takich jak np. Krotki i ciągi w pythonie). W większości języków funkcjonalnych dane są niezmienne. Zarówno zmienne, jak i niezmienne obiekty wnoszą własną listę zalet i wad. Istnieją języki, które próbują łączyć oba pojęcia, takie jak np. Scala, …

5
Czy niezmienność całkowicie eliminuje potrzebę blokowania w programowaniu wieloprocesorowym?
Część 1 Oczywiście niezmienność minimalizuje potrzebę blokowania w programowaniu wieloprocesorowym, ale czy eliminuje tę potrzebę, czy też są przypadki, w których sama niezmienność nie wystarczy? Wydaje mi się, że można jedynie odroczyć przetwarzanie i enkapsulować stan tak długo, zanim większość programów będzie musiała coś ZROBIĆ (zaktualizować magazyn danych, wygenerować raport, …

7
Różnica między niezmienną a stałą
Często widziałem warunki immutablei constużywałem zamiennie. Jednak z mojego (niewielkiego) doświadczenia wynika, że ​​te dwie rzeczy bardzo różnią się między sobą „umową”, którą zawierają w kodzie: Immutable sprawia, że ​​kontrakt, którego ten obiekt się nie zmieni (np. Krotki Python, łańcuchy Java). Const zawiera umowę, że w zakresie tej zmiennej nie …

5
Nie deklaruj interfejsów dla obiektów niezmiennych
To pytanie zostało przeniesione z Code Review Stack Exchange, ponieważ można na nie odpowiedzieć na Software Engineering Stack Exchange. Migrował 6 lat temu . Nie deklaruj interfejsów dla obiektów niezmiennych [EDYCJA] Gdy przedmiotowe obiekty reprezentują obiekty przesyłania danych (DTO) lub zwykłe stare dane (POD) Czy to rozsądna wskazówka? Do tej …
27 c#  immutability 

7
Czy istnieje jakiś praktyczny sposób, aby struktura połączonego węzła była niezmienna?
Postanowiłem napisać pojedynczo połączoną listę i miałem plan, aby wewnętrzna struktura połączonego węzła była niezmienna. Wpadłem jednak na przeszkodę. Powiedz, że mam następujące połączone węzły (z poprzednich addoperacji): 1 -> 2 -> 3 -> 4 i powiedz, że chcę dołączyć 5. Aby to zrobić, ponieważ węzeł 4jest niezmienny, muszę utworzyć …

8
Sprzyjanie niezmienności w projektowaniu baz danych
Jednym z elementów efektywnej Javy Joshua Blocha jest przekonanie, że klasy powinny pozwalać na mutację instancji jak najmniej, a najlepiej wcale. Często dane obiektu są utrwalane w bazie danych jakiejkolwiek formy. Doprowadziło mnie to do myślenia o idei niezmienności w bazie danych, szczególnie dla tych tabel, które reprezentują pojedynczy byt …


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.