Sdílet prostřednictvím


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.

Viz také