Dela via


Abstrakt 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.

❌ Definiera INTE offentliga eller skyddade interna konstruktorer i abstrakta typer.

Konstruktorer bör endast vara offentliga om användarna behöver skapa instanser av typen. Eftersom du inte kan skapa instanser av en abstrakt typ är en abstrakt typ med en offentlig konstruktor felaktigt utformad och vilseledande för användarna.

✔️ DEFINIERA en skyddad eller en intern konstruktor i abstrakta klasser.

En skyddad konstruktor är vanligare och gör helt enkelt att basklassen kan göra sin egen initiering när undertyper skapas.

En intern konstruktor kan användas för att begränsa konkreta implementeringar av den abstrakta klassen till den sammansättning som definierar klassen.

✔️ Ange minst en betongtyp som ärver från varje abstrakt klass som du skickar.

Om du gör det kan du verifiera designen för den abstrakta klassen. Är till exempel System.IO.FileStream en implementering av den System.IO.Stream abstrakta klassen.

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