Sobes.tech
Junior — Middle

Objasnite šta znači kreiranje objekata koji su nepromenljivi nakon njihove inicijalizacije.

sobes.tech АИ

Одговор од АИ

Kreiranje objekata koji su nepromenljivi nakon inicijalizacije znači da, nakon što je objekat kreiran i njegovi atributi su postavljeni, stanje tog objekta ne može biti izmenjeno. Takvi objekti se nazivaju immutable (nepromenljivi).

U C#-u, ovo se postiže, na primer, pomoću:

  • deklarisanja polja kao readonly;
  • izostanka settera u svojstvima (samo getter);
  • inicijalizacije svih podataka putem konstruktora.

Prednosti nepromenljivih objekata:

  • sigurnost u višestrukim nitima bez dodatne sinhronizacije.
  • pojednostavljenje razumevanja koda, jer se stanje objekta ne menja.
  • korišćenje kao ključeva u kolekcijama i kešovima.

Primer:

public class Person
{
    public string Name { get; }
    public int Age { get; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

Nakon kreiranja instance Person, njena svojstva se ne mogu menjati.