Sdílet prostřednictvím


Pokyny k návrhu typů

Z hlediska CLR existují pouze dvě kategorie typů – odkazové typy a typy hodnot– ale pro účely diskuze o návrhu architektury rozdělíme typy do více logických skupin, z nichž každá má vlastní specifická pravidla návrhu.

Třídy jsou obecný případ referenčních typů. Tvoří většinu typů ve většině architektur. Třídy dluží své popularitě bohaté sadě objektově orientovaných funkcí, které podporují, a jejich obecné použitelnosti. Základní třídy a abstraktní třídy jsou speciální logické skupiny související s rozšiřitelností.

Rozhraní jsou typy, které mohou být implementovány jak referenčními typy, tak typy hodnot. Mohou tak sloužit jako kořeny polymorfních hierarchií referenčních typů a hodnotových typů. Kromě toho lze rozhraní použít k simulaci vícenásobné dědičnosti, která clR nativně nepodporuje.

Struktury jsou obecným případem typů hodnot a měly by být vyhrazeny pro malé, jednoduché typy podobné primitivům jazyka.

Výčty jsou zvláštní případ typů hodnot, které slouží k definování krátkých sad hodnot, jako jsou dny v týdnu, barvy konzoly atd.

Statické třídy jsou typy určené jako kontejnery pro statické členy. Běžně se používají k poskytování klávesových zkratek k jiným operacím.

Delegáti, výjimky, atributy, pole a kolekce jsou všechny zvláštní případy odkazových typů určených pro konkrétní použití a pokyny pro jejich návrh a použití jsou popsány jinde v této knize.

✔️ Ujistěte se, že každý typ je dobře definovaná sada souvisejících členů, nejen náhodná kolekce nesouvisejících funkcí.

V této části

Volba mezi třídou a strukturou
Abstraktní návrh třídy
Návrh statické třídy
Návrh rozhraní
Návrh struktury
Návrh výčtu
Vnořené typy
Části z © 2005, 2009 Microsoft Corporation. Všechna práva vyhrazena.

Přetištěno se svolením Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition od Krzysztofa Cwaliny a Brada Abramse, vydáno 22. října 2008 nakladatelstvím Addison-Wesley Professional jako součást série Microsoft Windows Development.

Viz také