Tożsamość (programowanie obiektowe)

W programowaniu zorientowanym obiektowo , projektowaniu zorientowanym obiektowo i analizie zorientowanej obiektowo , tożsamość obiektu polega na tym, że różni się on od każdego innego obiektu, niezależnie od wartości właściwości obiektów. Posiadanie tożsamości jest podstawową właściwością przedmiotów.

Jest to ściśle związane z filozoficzną koncepcją tożsamości .

Tożsamość i referencje

Odwołanie może służyć do odniesienia się do obiektu o określonej tożsamości. Odniesienie zawiera informacje niezbędne do realizacji właściwości tożsamości w języku programowania i umożliwia dostęp do obiektu z tożsamością. Typem celu odwołania jest rola. Zazwyczaj odniesienia są izomorficzne z adresami pamięci. Jednak wiele takich odniesień może odnosić się do tego samego obiektu, jeśli istnieje jakaś forma mapowania adresów ( adresy wirtualne / tablice stron / segmenty pamięci ).

Tożsamość obiektu jest mniej użyteczna jako koncepcja semantyczna w środowiskach lub sytuacjach, w których struktura obiektów nie jest zamknięta, a dwa obiekty są uważane za ten sam obiekt na podstawie identycznych właściwości, nawet jeśli w rzeczywistości nie są tą samą fizyczną instancją ( równoważność strukturalna). Jednak tożsamość obiektu może mimo wszystko zapewnić optymalizację. Funkcja, która sprawdza, czy dwa argumenty są tym samym obiektem, może szybko uzyskać odpowiedź twierdzącą, jeśli oba argumenty mają tę samą tożsamość (są odniesieniami do tej samej instancji). Tylko wtedy, gdy argumentem są odrębne obiekty, należy wziąć pod uwagę poszczególne właściwości w celu określenia równości, co jest droższą operacją. Na przykład, bignum mogą być obiektami przydzielonymi do sterty, tak że dwa bignum są uważane za takie same, jeśli reprezentują tę samą liczbę. Niewykorzystanie odkrycia, że ​​dwa porównywane argumenty są odniesieniami do tego samego bignum, może być stratą cykli maszynowych w funkcji równości.

Konsekwencje tożsamości

Tożsamość obiektów pozwala na traktowanie obiektów jak czarnych skrzynek . Obiekt nie musi eksponować swojej wewnętrznej struktury. Nadal można się do niego odwoływać, a dostęp do jego innych właściwości można uzyskać za pośrednictwem jego zewnętrznego zachowania powiązanego z tożsamością. Tożsamość zapewnia mechanizm odwoływania się do takich części obiektu, które nie są widoczne w interfejsie. Zatem tożsamość jest podstawą polimorfizmu w programowaniu obiektowym .

Tożsamość umożliwia porównywanie referencji. Dwa odniesienia można porównać niezależnie od tego, czy są one równe, czy nie. Ze względu na właściwość identyczności to porównanie ma specjalne właściwości. Jeśli porównanie referencji wskazuje, że referencje są równe, to jasne jest, że dwa obiekty wskazywane przez referencje to ten sam obiekt. Jeśli odniesienia nie są równe, niekoniecznie gwarantuje się, że tożsamość obiektów stojących za tymi odniesieniami jest inna. Tożsamość obiektów dwóch obiektów tego samego typu jest taka sama, jeśli każda zmiana w jednym obiekcie jest również zmianą w drugim obiekcie.

Tożsamość i obiektowy model koncepcyjny

Tożsamość pozwala na zbudowanie platońskiego idealnego świata, ontologii lub modelu pojęciowego, który jest często używany jako podstawa myślenia obiektowego. Model koncepcyjny opisuje klienta na domenę , terminologię lub API . Ten świat zawiera obiekty punktowe jako instancje , właściwości obiektów i powiązania między tymi obiektami. Obiekty na świecie można pogrupować, tworząc klasy . Właściwości obiektów można pogrupować, tworząc role. Linki można grupować, tworząc skojarzenia . Wszystkie lokacje na świecie wraz z powiązaniami między lokacjami tworzą strukturę świata. Grupy te są typami odpowiednich instancji świata.

Notatki

Zobacz też