Projekt klasy abstrakcyjnej

Uwaga

Ta zawartość jest drukowana przez uprawnienie Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Wydanie to zostało opublikowane w 2008 roku, a książka została w pełni zmieniona w trzecim wydaniu. Niektóre informacje na tej stronie mogą być nieaktualne.

❌ NIE należy definiować publicznych ani chronionych konstruktorów wewnętrznych w typach abstrakcyjnych.

Konstruktory powinny być publiczne tylko wtedy, gdy użytkownicy będą musieli tworzyć wystąpienia typu. Ponieważ nie można tworzyć wystąpień typu abstrakcyjnego, typ abstrakcyjny z konstruktorem publicznym jest niepoprawnie zaprojektowany i wprowadzający w błąd dla użytkowników.

✔️ Funkcja DO definiuje chroniony lub wewnętrzny konstruktor w klasach abstrakcyjnych.

Chroniony konstruktor jest częściej spotykany i po prostu umożliwia klasie bazowej wykonywanie własnej inicjalizacji podczas tworzenia podtypów.

Konstruktor wewnętrzny może służyć do ograniczania konkretnych implementacji klasy abstrakcyjnej do zestawu definiującego klasę.

✔️ Należy podać co najmniej jeden konkretny typ, który dziedziczy z każdej klasy abstrakcyjnej dostarczanej.

Dzięki temu można zweryfikować projekt klasy abstrakcyjnej. Na przykład System.IO.FileStream jest implementacją klasy abstrakcyjnej System.IO.Stream .

© Części 2005, 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.

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, published oct 22, 2008 by Addison-Wesley Professional w ramach Microsoft Windows Development Series.

Zobacz też