Skip to main content

Co to jest niezmienny obiekt?

W programowaniu zorientowanym obiektowym obiektem niezmiennym jest obiekt, którego właściwości nie można zmienić po jego utworzeniu.Natomiast większość obiektów jest zmiennymi obiektami, co oznacza, że niektóre lub wszystkie ich właściwości można swobodnie zmieniać po utworzeniu.Różnorodne języki komputerowe mają możliwość tworzenia niezmiennych obiektów, w tym Java, C ++, Erlang, Tcl i Scala.

Niezmienne obiekt można stworzyć na jeden z dwóch sposobów: tworząc klasę, która z definicji jest niezmienna lub jawniedeklarowanie, że skądinowo zmienny obiekt jest niezmienny.Metodologia tworzenia niezmiennej klasy różni się w zależności od używanego języka komputerowego.Niezależnie od języka, niezmienna klasa nie musi mieć żadnych metod, które mogą zmienić swoje wewnętrzne dane i nie ma możliwości zmiany metod i mdash;tj. Zastąpione lub przeciążone mdash;w sposób, który zmieniłby jego wewnętrzne dane.Jest to bardziej skomplikowane z dwóch podejść.Z drugiej strony, aby utworzyć niezmienne obiekt z obiektu, z drugiej strony, często można zastosować słowo kluczowe do wyznaczenia obiektu jako niezmiennego.

Jako przykład, niezmienne tworzenie obiektów w Javie w dużej mierze opiera się na ostatecznym słowie kluczowym.Szybkim sposobem na uczynienie klasy w Javie jest ogłoszenie klasy, a także wszystkich jej metod i członków danych, ostatecznie.Podobną strategię można również zastosować w C ++ z słowem kluczowym Const.Te podejścia, w zależności od treści klasowych, mogą jednak nie być najlepsze.Ogólnie rzecz biorąc, obiekty mogą być zwykle niezmienne poprzez staranne utrzymanie ich danych wewnętrznych.

Umieszczenie niezmiennego obiektu za pomocą słowa kluczowego, jak w powyższym przykładzie, jest często znacznie łatwiejsze niż pisanie całej klasy, aby być niezmiennym.Zastosowanie tego podejścia ma jednak swoje niebezpieczeństwa.Podczas wyraźnego wyznaczenia niezmiennego obiektu w ten sposób ważne jest, aby programista upewnił się, że wszystkie odpowiednie właściwości i dane zostały najpierw włączone do obiektu.Opierając się na niekompletnym obiekcie może być niebezpieczne, szczególnie jeśli brakuje mu niezbędnej informacji.

Jeśli obiekt jest zmienny, ale wymaga poprawnego utworzenia niezmiennych danych, niezmienne dane muszą zostać zainicjowane, zanim będzie można stworzyć zmienny obiekt.Niezmienne obiekty są zawsze niezmienne, niezależnie od tego, czy są to wartości danych, czy duże obiekty, i zawsze muszą być traktowane jako takie.Ogólnie rzecz biorąc, niezmienny obiekt nie może być zmuszony po jego utworzeniu, chociaż czasami można je kopiować jako zmienne obiekty.Zwykle można założyć, że niezmienny obiekt i dowolne z jego kopii są również niezmienne, co może zapobiegać problemom z danymi lub pamięci.