Değiştirilebilir Nesne Nedir?

Nesne yönelimli programlamada değişmez bir nesne, özellikleri oluşturulduktan sonra değiştirilemeyen bir nesnedir. Çoğu nesne, aksine, değişken nesnelerdir, bu özelliklerin bir kısmının veya tamamının yaratıldıktan sonra serbestçe değiştirilebileceği anlamına gelir. Çeşitli bilgisayar dilleri, Java, C ++, erlang, Tcl ve scala dahil olmak üzere değiştirilemez nesneler oluşturma yeteneğine sahiptir.

Değişmez bir nesne iki yoldan biriyle yaratılabilir: tanım yoluyla değiştirilemez bir sınıf oluşturarak veya açıkça değiştirilemez olan başka bir değiştirilebilen nesneyi bildirerek. Değişmez bir sınıf oluşturma yöntemi kullanılan bilgisayar diline bağlı olarak değişir. Dil ne olursa olsun, değişmez bir sınıfın iç verilerini değiştirebilecek hiçbir yöntemi ve değiştirilebilecek hiçbir yöntemi - yani geçersiz kılınmış veya aşırı yüklenmemiş - iç verilerini değiştirecek şekilde olmamalıdır. Bu iki yaklaşımdan daha karmaşıktır. Öte yandan değiştirilebilir bir nesneden değişmez bir nesne oluşturmak için, diğer yandan, nesneyi değişmez olarak tanımlamak için genellikle bir anahtar kelime uygulanabilir.

Örnek olarak, Java’daki değişmez nesne oluşturma işlemi büyük ölçüde "final" anahtar kelimesine dayanır. Bir sınıfı Java'da değiştirilemez kılmanın hızlı bir yolu, sınıfı ve ayrıca tüm yöntemlerini ve veri üyelerini final olarak ilan etmektir. Benzer bir strateji C ++ 'da "const" anahtar sözcüğüyle de kullanılabilir. Bununla birlikte, sınıf içeriğine bağlı olarak, bu yaklaşımlar en iyisi olmayabilir. Genel olarak, nesneler genellikle iç verilerinin dikkatli bir şekilde bakımıyla değiştirilemez hale getirilebilir.

Yukarıdaki örnekte olduğu gibi bir anahtar sözcük kullanarak değişmez bir nesne yapmak genellikle değişmez olmak için bütün bir sınıfı yazmaktan çok daha kolaydır. Ancak bu yaklaşımı kullanmanın tehlikeleri vardır. Bu şekilde değişmez bir nesneyi açıkça belirlerken, programcının tüm uygun özelliklerin ve verilerin nesneye ilk olarak dahil edildiğinden emin olması önemlidir. Eksik bir nesneye güvenmek, özellikle de önemli bir bilgi parçasını eksikse, tehlikeli olabilir.

Bir nesnenin değişebilir olması durumunda ancak değişmez verilerin doğru bir şekilde oluşturulmasını gerektiriyorsa, değişebilir verilerin değişebilir nesne oluşturulmadan önce başlatılması gerekir. Değiştirilebilir nesneler, veri değerleri veya büyük nesneler olup olmadıkları her zaman değişmezdir ve her zaman olduğu gibi ele alınmaları gerekir. Genel olarak, değiştirilemez bir nesne oluşturulduktan sonra değiştirilemez, ancak bazen değiştirilebilir nesneler olarak kopyalanabilirler. Genellikle değişmez bir nesnenin ve kopyalarının herhangi birinin de değişmez olduğu varsayılabilir, bu da veri veya bellek sorunlarını önleyebilir.