Dela via


Abstrakt klassdesign

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.

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

✔️ Tillhandahåll minst en konkret typ som ärver från varje abstrakt klass som du levererar.

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

Se även