Statisk klassdesign
Kommentar
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.
En statisk klass definieras som en klass som endast innehåller statiska medlemmar (naturligtvis förutom de instansmedlemmar som ärvts från System.Object och eventuellt en privat konstruktor). Vissa språk har inbyggt stöd för statiska klasser. I C# 2.0 och senare, när en klass deklareras som statisk, är den förseglad, abstrakt och inga instansmedlemmar kan åsidosättas eller deklareras.
Statiska klasser är en kompromiss mellan ren objektorienterad design och enkelhet. De används ofta för att ge genvägar till andra åtgärder (till exempel System.IO.File), innehavare av tilläggsmetoder eller funktioner för vilka en fullständig objektorienterad omslutning är obefogad (till exempel System.Environment).
✔️ Använd statiska klasser sparsamt.
Statiska klasser ska endast användas som stödklasser för ramverkets objektorienterade kärna.
❌ Behandla INTE statiska klasser som en diverse bucket.
❌ Deklarera INTE eller åsidosätt inte instansmedlemmar i statiska klasser.
✔️ Deklarera statiska klasser som förseglade, abstrakta och lägg till en konstruktor för privata instanser om programmeringsspråket inte har inbyggt stöd för statiska klasser.
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.