Identita (objektově orientované programování) - Identity (object-oriented programming)

Identity v objektově orientované programování , objektově orientovaného návrhu a objektově orientované analýzy popisuje vlastnosti objektů , které ji odlišuje od ostatních předmětů. To úzce souvisí s filozofickým pojetím identity .

Totožnost a reference

Reference může být použit pro označení objektu se specifickou identitu. Odkaz obsahuje informace, které jsou nezbytné pro to, aby byla vlastnost identity realizována v programovacím jazyce , a umožňuje přístup k objektu s identitou. Typem cíle odkazu je role. Odkazy jsou obvykle izomorfní s adresami paměti. Několik takových odkazů však může odkazovat na stejný objekt, pokud existuje nějaká forma mapování adres ( virtuální adresy / tabulky stránek / segmenty paměti ).

Identita objektu je méně užitečná jako sémantický koncept v prostředích nebo situacích, ve kterých není struktura objektů zapouzdřena, a dva objekty jsou považovány za stejný objekt na základě toho, že mají stejné vlastnosti, i když ve skutečnosti nejsou stejnou fyzickou instancí ( strukturální ekvivalence). Identita objektu však může poskytnout optimalizaci. Funkce, která testuje, zda jsou dva argumenty stejný objekt, může rychle zkratovat na kladnou odpověď, pokud mají dva argumenty stejnou identitu (jedná se o odkazy na stejnou instanci). Pouze v případě, že argumentem jsou odlišné objekty, je třeba vzít v úvahu jednotlivé vlastnosti k určení rovnosti, což je nákladnější operace. Například celá čísla bignum mohou být haldy přidělené objekty tak, že dvě bignum jsou považována za stejná, pokud představují stejné číslo. Mohlo by to být plýtváním strojových cyklů ve funkci rovnosti nevyužít výhody objevu, že dva porovnávané argumenty jsou odkazy na stejné bignum.

Důsledky identity

Identita objektů umožňuje považovat objekty za černé skříňky . Objekt nemusí vystavovat svou vnitřní strukturu. Stále na něj lze odkazovat a k jeho dalším vlastnostem lze přistupovat prostřednictvím jeho externího chování spojeného s identitou. Identita poskytuje mechanismus pro odkazování na takové části objektu, které nejsou vystaveny v rozhraní. Identita je tedy základem polymorfismu v objektově orientovaném programování .

Identita umožňuje srovnání referencí. Lze porovnat dva odkazy, ať už jsou stejné nebo ne. Kvůli vlastnosti identity má toto srovnání speciální vlastnosti. Pokud srovnání odkazů naznačuje, že odkazy jsou stejné, pak je jasné, že dva objekty, na které odkazují odkazy, jsou stejný objekt. Pokud se odkazy nesrovnávají stejně, není nutně zaručeno, že identita objektů za těmito odkazy je odlišná. Identita objektu dvou objektů stejného typu je stejná, pokud je každá změna kteréhokoli objektu také změnou druhého objektu.

Identita a objektově orientovaný koncepční model

Identita umožňuje konstrukci platonického ideálního světa, ontologie nebo konceptuálního modelu, který se často používá jako základ objektově orientovaného myšlení. Konceptuální model popisuje pohled klienta na doménu , terminologii nebo API . Tento svět obsahuje objekty podobné bodům jako instance , vlastnosti objektů a vazby mezi těmito objekty. Objekty na světě lze seskupit do tříd tříd . Vlastnosti objektů lze seskupit do rolí formulářů . Odkazy lze seskupit a vytvořit sdružení . Všechna místa na světě spolu s vazbami mezi těmito místy tvoří strukturu světa. Tyto skupiny jsou typy odpovídajících instancí světa.

Poznámky

Viz také