Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Det här innehållet skrivs om med behörighet från Pearson Education, Inc. från Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Den utgåvan publicerades 2008, och boken har sedan dess reviderats helt i den tredje utgåvan. En del av informationen på den här sidan kan vara inaktuell.
Inkapslingsprincipen är en av de viktigaste begreppen inom objektorienterad design. Den här principen anger att data som lagras i ett objekt endast ska vara tillgängliga för det objektet.
Ett användbart sätt att tolka principen är att säga att en typ ska utformas så att ändringar i fält av den typen (namn eller typändringar) kan göras utan att någon annan kod än för medlemmar av typen bryts. Den här tolkningen innebär omedelbart att alla fält måste vara privata.
Vi exkluderar konstanta och statiska skrivskyddade fält från den här strikta begränsningen, eftersom sådana fält nästan per definition aldrig behöver ändras.
❌ ANGE INTE instansfält som är offentliga eller skyddade.
Du bör ange egenskaper för åtkomst till fält i stället för att göra dem offentliga eller skyddade.
✔️ Använd konstanta fält för konstanter som aldrig ändras.
Kompilatorn infogar värdena för const-fält direkt in i kod som anropar. Därför kan const-värden aldrig ändras utan risk för kompatibilitetsbrott.
✔️ Använd offentliga statiska readonly
fält för fördefinierade objektinstanser.
Om det finns fördefinierade instanser av typen deklarerar du dem som offentliga skrivskyddade statiska fält av själva typen.
❌ Tilldela INTE instanser av föränderliga typer till readonly
fält.
En föränderlig typ är en typ med instanser som kan ändras när de har instansierats. Matriser, de flesta samlingar och strömmar är till exempel föränderliga typer, men System.Int32, System.Urioch System.String är alla oföränderliga. Den skrivskyddade modifieraren i ett referenstypfält förhindrar att instansen som lagrats i fältet blir ersatt, men den förhindrar inte att fältets instansdata ändras genom att anropande medlemmar ändrar instansen.
Portioner © 2005, 2009 Microsoft Corporation. Alla rättigheter reserverade.
Återtryckt med tillstånd från Pearson Education, Inc. från Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition av Krzysztof Cwalina och Brad Abrams, publicerades den 22 oktober 2008 av Addison-Wesley Professional som en del av Microsoft Windows Development Series.