Veldontwerp
Notitie
Deze inhoud wordt opnieuw afgedrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms en Patterns for Reusable .NET Libraries, 2nd Edition. Die editie werd in 2008 gepubliceerd en het boek is sindsdien volledig herzien in de derde editie. Sommige informatie op deze pagina is mogelijk verouderd.
Het principe van inkapseling is een van de belangrijkste concepten in objectgeoriënteerd ontwerp. Dit principe geeft aan dat gegevens die zijn opgeslagen in een object alleen toegankelijk moeten zijn voor dat object.
Een handige manier om het principe te interpreteren, is om te zeggen dat een type zodanig moet worden ontworpen dat wijzigingen in velden van dat type (naam- of typewijzigingen) kunnen worden aangebracht zonder dat andere code dan voor leden van het type wordt onderbroken. Deze interpretatie impliceert onmiddellijk dat alle velden privé moeten zijn.
We sluiten constante en statische alleen-lezen velden uit van deze strikte beperking, omdat dergelijke velden, bijna per definitie, nooit hoeven te worden gewijzigd.
❌ Geef geen exemplaarvelden op die openbaar of beveiligd zijn.
U moet eigenschappen opgeven voor toegang tot velden in plaats van ze openbaar of beveiligd te maken.
✔️ Gebruik wel constante velden voor constanten die nooit veranderen.
De compiler verbrandt de waarden van const-velden rechtstreeks in het aanroepen van code. Const-waarden kunnen daarom nooit worden gewijzigd zonder het risico dat compatibiliteit wordt onderbroken.
✔️ Gebruik openbare statische readonly
velden voor vooraf gedefinieerde objectexemplaren.
Als er vooraf gedefinieerde exemplaren van het type zijn, declareert u deze als openbare statische velden met het kenmerk Alleen-lezen van het type zelf.
❌ Wijs geen exemplaren van veranderlijke typen toe aan readonly
velden.
Een veranderlijk type is een type met exemplaren die kunnen worden gewijzigd nadat ze zijn geïnstantieerd. Matrices, de meeste verzamelingen en streams zijn bijvoorbeeld veranderlijke typen, maar System.Int32System.Uri, en System.String zijn allemaal onveranderbaar. De alleen-lezen wijziging voor een verwijzingstypeveld voorkomt dat het exemplaar dat in het veld is opgeslagen, wordt vervangen, maar verhindert niet dat de exemplaargegevens van het veld worden gewijzigd door leden aan te roepen die het exemplaar wijzigen.
© Delen 2005, 2009 Microsoft Corporation. Alle rechten voorbehouden.
Herdrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published oct 22, 2008 by Addison-Wesley Professional als onderdeel van de Microsoft Windows Development Series.