Dela via


Riktlinjer för typdesign

Ur CLR-perspektivet finns det bara två typer av typer – referenstyper och värdetyper – men för en diskussion om ramverksdesign delar vi in typer i fler logiska grupper, var och en med sina egna specifika designregler.

Klasser är det allmänna fallet med referenstyper. De utgör de flesta typerna i de flesta ramverk. Klasserna är populära tack vare den omfattande uppsättningen objektorienterade funktioner som de stöder och deras allmänna tillämplighet. Basklasser och abstrakta klasser är särskilda logiska grupper som är relaterade till utökningsbarhet.

Gränssnitt är typer som kan implementeras av både referenstyper och värdetyper. De kan därmed fungera som rötter i polymorfa hierarkier av referenstyper och värdetyper. Dessutom kan gränssnitt användas för att simulera flera arv, vilket inte stöds internt av CLR.

Structs är det allmänna fallet med värdetyper och bör reserveras för små, enkla typer som liknar språkpri primitiver.

Uppräkningar är ett specialfall med värdetyper som används för att definiera korta uppsättningar med värden, till exempel veckodagar, konsolfärger och så vidare.

Statiska klasser är typer som är avsedda att vara containrar för statiska medlemmar. De används ofta för att ge genvägar till andra åtgärder.

Ombud, undantag, attribut, matriser och samlingar är alla specialfall av referenstyper som är avsedda för specifika användningsområden, och riktlinjer för deras design och användning diskuteras någon annanstans i den här boken.

✔️ Se till att varje typ är en väldefinierad uppsättning relaterade medlemmar, inte bara en slumpmässig samling orelaterade funktioner.

I detta avsnitt

Välja mellan klass och struct
Abstrakt klassdesign
Statisk klassdesign
Gränssnittsdesign
Struct-design
Uppräkningsdesign
Kapslade typer
Portioner © 2005, 2009 Microsoft Corporation. Med ensamrätt.

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, publicerad 22 okt 2008 av Addison-Wesley Professional som en del av Microsoft Windows Development Series.

Se även