Návrh abstraktní třídy
Poznámka:
Tento obsah je znovu vytištěn oprávněním Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms a Patterns for Reusable .NET Libraries, 2. vydání. Tato edice byla publikována v roce 2008 a kniha byla od té doby plně upravena ve třetím vydání. Některé informace na této stránce můžou být zastaralé.
❌ NEdefinujte veřejné nebo chráněné vnitřní konstruktory v abstraktních typech.
Konstruktory by měly být veřejné pouze v případě, že uživatelé budou muset vytvářet instance typu. Vzhledem k tomu, že nelze vytvořit instance abstraktního typu, abstraktní typ s veřejným konstruktorem je nesprávně navržen a zavádějící pro uživatele.
✔️ DO definujte chráněný nebo interní konstruktor v abstraktních třídách.
Chráněný konstruktor je častější a jednoduše umožňuje základní třídě provádět vlastní inicializaci při vytváření podtypů.
Vnitřní konstruktor lze použít k omezení konkrétních implementací abstraktní třídy na sestavení definující třídu.
✔️ DO zadejte alespoň jeden konkrétní typ, který dědí z každé abstraktní třídy, kterou dodáváte.
Tímto způsobem můžete ověřit návrh abstraktní třídy. Příkladem System.IO.FileStream je implementace System.IO.Stream abstraktní třídy.
© Části 2005, 2009 Microsoft Corporation. Všechna práva vyhrazena.
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 v rámci Microsoft Windows Development Series.