Pertanyaan yang diberi tag «immutability»


6
Mengapa Java 8 tidak menyertakan koleksi tidak berubah?
Tim Java telah melakukan banyak pekerjaan untuk menghilangkan hambatan pemrograman fungsional di Jawa 8. Secara khusus, perubahan pada java.util Collections melakukan pekerjaan yang bagus untuk mengubah transformasi menjadi operasi yang mengalir sangat cepat. Mengingat betapa baiknya pekerjaan yang telah mereka lakukan dengan menambahkan fungsi kelas satu dan metode fungsional pada …

6
Apakah kekekalan merusak kinerja dalam JavaScript?
Tampaknya ada tren terbaru dalam JavaScript untuk memperlakukan struktur data sebagai tidak berubah. Misalnya, jika Anda perlu mengubah properti tunggal objek, lebih baik buat saja objek baru dengan properti baru, dan cukup salin semua properti lainnya dari objek lama, dan biarkan objek lama menjadi sampah yang dikumpulkan. (Lagipula itu pemahaman …


4
Mengapa koleksi Java diimplementasikan dengan "metode opsional" di antarmuka?
Selama implementasi pertama saya memperluas kerangka koleksi Java, saya cukup terkejut melihat bahwa antarmuka koleksi berisi metode yang dinyatakan sebagai opsional. Pelaksana diharapkan untuk membuang UnsupportedOperationExceptions jika tidak didukung. Ini langsung mengejutkan saya sebagai pilihan desain API yang buruk. Setelah membaca banyak buku "Efektif Java" karya Joshua Bloch yang luar …



2
Apa yang dimaksud Alan Kay dengan “penugasan” di The Early History of Smalltalk?
Saya telah membaca The Early History of Smalltalk dan ada beberapa yang menyebutkan "penugasan" yang membuat saya mempertanyakan pemahaman saya tentang maknanya: Meskipun OOP berasal dari banyak motivasi, dua adalah pusat. Yang berskala besar adalah menemukan skema modul yang lebih baik untuk sistem kompleks yang melibatkan penyembunyian detail, dan yang …

7
Keabadian lengkap dan Pemrograman Berorientasi Objek
Dalam sebagian besar bahasa OOP, objek umumnya dapat berubah dengan set pengecualian terbatas (seperti misalnya tupel dan string dalam python). Dalam sebagian besar bahasa fungsional, data tidak dapat diubah. Baik objek yang dapat berubah maupun yang tidak berubah membawa daftar kelebihan dan kekurangan mereka sendiri. Ada bahasa yang mencoba mengawinkan …

5
Apakah immutabilitas sepenuhnya menghilangkan kebutuhan akan kunci dalam pemrograman multi-prosesor?
Bagian 1 Jelasnya, Ketidakmampuan meminimalkan kebutuhan akan penguncian dalam pemrograman multi-prosesor, tetapi apakah itu menghilangkan kebutuhan itu, atau adakah contoh di mana kekekalan saja tidak cukup? Sepertinya saya bahwa Anda hanya dapat menunda proses dan merangkum keadaan begitu lama sebelum sebagian besar program benar-benar harus melakukan sesuatu (memperbarui penyimpanan data, …

7
Perbedaan antara tidak berubah dan const
Saya sudah sering melihat ketentuan immutabledan constdigunakan secara bergantian. Namun, dari pengalaman (kecil) saya, keduanya sangat berbeda dalam 'kontrak' yang mereka buat dalam kode: Immutable membuat kontrak bahwa objek ini tidak akan berubah, apa pun (mis. Python tuple, string Java). Const membuat kontrak bahwa dalam lingkup variabel ini tidak akan …

5
Jangan mendeklarasikan antarmuka untuk objek yang tidak dapat diubah
Pertanyaan ini dimigrasikan dari Code Review Stack Exchange karena dapat dijawab di Rekayasa Perangkat Lunak Stack Exchange. Bermigrasi 6 tahun yang lalu . Jangan mendeklarasikan antarmuka untuk objek yang tidak dapat diubah [EDIT] Di mana objek yang dimaksud mewakili Data Transfer Objects (DTOs) atau Data Lama Biasa (PODs) Apakah itu …
27 c#  immutability 


8
Mendukung Kekekalan dalam Desain Basis Data
Salah satu item dalam Java Efektif Joshua Bloch adalah gagasan bahwa kelas harus memungkinkan mutasi instance sesedikit mungkin, dan lebih disukai tidak sama sekali. Seringkali, data suatu objek disimpan ke database dari beberapa bentuk. Hal ini membuat saya berpikir tentang ide kekekalan dalam database, terutama untuk tabel-tabel yang mewakili satu …


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.