Çoğu OOP dilinde, nesneler genellikle sınırlı bir istisnalar kümesiyle değiştirilebilir (örneğin python'daki tuples ve stringler gibi). Çoğu işlevsel dilde, veriler değişmez.
Değişebilir ve değişmez nesnelerin her ikisi de kendi avantajlarının ve dezavantajlarının bir listesini verir.
Her iki kavramla da evlenmeye çalışan diller var; örneğin (açıkça ilan ettiğiniz) scala ve değişken veri (örneğin, hatalıysam, lütfen benim ölçeklendirme bilgim daha sınırlı).
Benim soru: Does komple bir cepten bağlamında bir anlam created- olmuştur kez hiçbir nesne -yani (sic!) Değişmezlik mutasyona olabilir?
Böyle bir modelin tasarımları veya uygulamaları var mı?
Temel olarak, (tam) değişmezlik ve OOP karşıtları mı yoksa dikey mi?
Motivasyon: OOP'de normalde veriler üzerinde çalışır , temel bilgileri değiştirir (mutasyona uğrar), bu nesneler arasında referans tutar. Ör . Başka bir nesneyi referans Person
alan üyeli bir sınıf nesnesi. Babanın adını değiştirirseniz, bu durum güncellemeye gerek kalmadan hemen alt nesne tarafından görülebilir. Değişmez olmak, hem baba hem de çocuk için yeni nesneler inşa etmeniz gerekir. Ancak, paylaşılan nesneler, çoklu iş parçacığı, GIL, vb. İle daha az uğraşmanız olur.father
Person