İçindekiler:

Java'da tarih alanıyla sınıfı nasıl değişmez hale getirebiliriz?
Java'da tarih alanıyla sınıfı nasıl değişmez hale getirebiliriz?

Video: Java'da tarih alanıyla sınıfı nasıl değişmez hale getirebiliriz?

Video: Java'da tarih alanıyla sınıfı nasıl değişmez hale getirebiliriz?
Video: İyi tasarımın 10 KURALI - RAMS ilkeleri 2024, Kasım
Anonim

Bu yönergelerin aslında ne anlama geldiğini, Date alanı ile mutable nesne ile immutable bir sınıf oluşturarak anlayacağız

  1. "Ayarlayıcı" yöntemler sağlamayın - değiştiren yöntemler alanlar veya nesneler tarafından atıfta bulunulan alanlar .
  2. Yapmak herşey alanlar nihai ve özel.
  3. Alt sınıfların yöntemleri geçersiz kılmasına izin vermeyin.

Bu nedenle, Java'da bir sınıfı nasıl değişmez hale getirebiliriz?

Java'da Değişmez Sınıf

  1. Uzatılmaması için sınıfı final olarak ilan edin.
  2. Doğrudan erişime izin verilmemesi için tüm alanları özel yapın.
  3. Değişkenler için ayarlayıcı yöntemler sağlamayın.
  4. Değerinin yalnızca bir kez atanabilmesi için tüm değişken alanları son yapın.
  5. Derin kopyalama gerçekleştiren bir yapıcı aracılığıyla tüm alanları başlatın.

Daha sonra soru, Java'da değişmez sınıfın kullanımı nedir? değişmez sınıf bir nesne oluşturulduktan sonra içeriğini değiştiremeyeceğimiz anlamına gelir. İçinde Java , tüm sarıcı sınıflar (Tamsayı, Boole, Bayt, Kısa gibi) ve Dize sınıf NS değişmez . Kendimizi yaratabiliriz değişmez sınıf ilave olarak.

İnsanlar ayrıca, Java'da Date sınıfının değişmez olup olmadığını soruyor.

Tarih değil değişmez , savunma kopyasını çıkarmamız gerekiyor java . kadar. Tarih bu örnek değişkenine bir başvuru döndürürken alan. Varsayımsal bir insan yaratalım sınıf sadece iki üye olarak adı ve dob'u olan.

Bir nesneyi nasıl değişmez hale getirebiliriz?

Nesneyi değişmez yapmak için şu adımları yapmalısınız:

  1. Sınıfınızın alanlarını değiştirebilecek herhangi bir yöntem kullanmayın. Örneğin Setters kullanmayın.
  2. Genel olmayan son alanları kullanmaktan kaçının. Alanlarınız herkese açıksa, bunları nihai olarak bildirmeli ve bunları yapıcıda veya doğrudan bildirim satırında başlatmalısınız.

Önerilen: