Megosztás a következőn keresztül:


Mezőtervezés

Feljegyzés

Ezt a tartalmat a Pearson Education, Inc. engedélyével nyomtatjuk újra a Framework Design Guidelines: Conventions, Idioms és Patterns for Reusable .NET Libraries, 2nd Edition engedélyével. Ezt a kiadást 2008-ban adták ki, és a könyvet azóta teljesen átdolgozták a harmadik kiadásban. Előfordulhat, hogy az oldalon található információk némelyike elavult.

A beágyazás elve az objektumorientált tervezés egyik legfontosabb fogalma. Ez az alapelv azt állítja, hogy az objektumon belül tárolt adatoknak csak az adott objektum számára legyenek elérhetők.

Az alapelv értelmezésének hasznos módja, ha azt mondjuk, hogy egy típust úgy kell megtervezni, hogy az adott típusú mezők (név- vagy típusmódosítások) a típus tagjaitól eltérő kód feltörése nélkül is módosíthatók legyenek. Ez az értelmezés azonnal azt jelenti, hogy minden mezőnek magánjellegűnek kell lennie.

Ebből a szigorú korlátozásból kizárjuk az állandó és statikus írásvédett mezőket, mert az ilyen mezőket szinte definíció szerint soha nem kell módosítani.

❌ NE adjon meg nyilvános vagy védett példánymezőket.

A mezők elérésére szolgáló tulajdonságokat kell megadnia ahelyett, hogy nyilvánossá vagy védetté tenné őket.

✔️ A DO állandó mezőket használ olyan állandókhoz, amelyek soha nem változnak.

A fordító a const mezők értékeit közvetlenül a hívó kódba égeti. Ezért a const értékek soha nem módosíthatók kompatibilitástörő kockázat nélkül.

✔️ A DO nyilvános statikus readonly mezőket használ előre definiált objektumpéldányokhoz.

Ha a típus előre definiált példányai vannak, deklarálja őket nyilvános írásvédett statikus mezőként magának a típusnak.

❌ NE rendelje hozzá a mezőkhöz readonly a mutable típusú példányokat.

A mutable típus olyan példányokkal rendelkező típus, amely a példányok példányosítása után módosítható. A tömbök, a legtöbb gyűjtemény és stream például nem módosítható típusok, de System.Int32mind System.UriSystem.String megváltoztathatatlanok. A hivatkozástípus mező írásvédett módosítója megakadályozza a mezőben tárolt példány cseréjét, de nem akadályozza meg a mező példányadatainak módosítását a példányt módosító tagok meghívásával.

© Részletek 2005, 2009 Microsoft Corporation. Minden jog fenntartva.

Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published 22, 2008 by Addison-Wesley Professional, a Microsoft Windows Development Series részeként.

Lásd még