Sobes.tech
Junior — Middle

Milyen elveket kell alkalmazni Java osztály létrehozásakor, hogy az változatlan maradjon?

sobes.tech MI

Válasz az MI-től

Annak érdekében, hogy egy Java osztály immutable (változtathatatlan) legyen, néhány alapelvet be kell tartani:

  1. Jelölje az osztályt final-ként — így nem lehet alosztályt létrehozni, amely megváltoztatja a viselkedést.
  2. Tegye az összes mezőt private és final-ná — így azok az inicializálás után nem módosíthatók.
  3. Ne biztosítson settereket (metódusokat a mezők módosítására).
  4. Minden mezőt a konstruktoron keresztül inicializáljon.
  5. Ha a mezők változtatható objektumokra mutató referenciák (pl. tömbök, kollekciók), akkor másolatokat készítsen azokból az értékadáskor és a getterekből való visszaadáskor, hogy a külső változtatások ne befolyásolják a belső állapotot.

Példa:

public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

Ez a típusú osztály, az objektum létrehozása után, nem teszi lehetővé az állapotának módosítását, ami hasznos a szálbiztonság és a viselkedés előre láthatósága szempontjából.