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.