Правила разработки типов

С точки зрения среды CLR существует только две категории типов — ссылочные типы и типы значений, — но в рамках обсуждения структуры платформы мы разделяем типы на несколько логических групп, каждая из которых имеет собственные определенные правила проектирования.

Классы представляют собой общий случай ссылочных типов. Они составляют большую часть типов в большинстве платформ. Своей популярностью классы обязаны обширному набору объектно-ориентированных функций, которые они поддерживают, и их общей применимости. Базовые классы и абстрактные классы — это специальные логические группы, связанные с расширяемостью.

Интерфейсы — это типы, которые можно реализовать как ссылочные типы, так и типы значений. Таким образом, они выполняют функцию корней для полиморфных иерархий ссылочных типов и типов значений. Кроме того, интерфейсы можно использовать для моделирования множественного наследования, которое не имеет собственной поддержки в среде CLR.

Структуры представляют собой общий случай типов значений и должны быть зарезервированы для небольших простых типов, аналогичных примитивам языка.

Перечисления — это особый случай типов значений, используемых для определения коротких наборов значений, таких как дни недели, цвета консоли и т. д.

Статические классы — это типы, предназначенные выполнять роль контейнеров для статических элементов. Как правило, они используются для предоставления сочетаний клавиш для других операций.

Делегаты, исключения, атрибуты, массивы и коллекции являются особыми случаями ссылочных типов, предназначенными для определенных целей, а рекомендации по их проектированию и использованию обсуждаются в других разделах этой книги.

✔️ УБЕДИТЕСЬ, что каждый тип является четко определенным набором связанных элементов, а не просто случайным набором несвязанных функций.

В этом разделе

Выбор между классом и структурой
Разработка абстрактных классов
Разработка статических классов
Разработка интерфейса
Разработка структур
Разработка перечислений
Вложенные типы
Фрагменты: © Корпорация Майкрософт (Microsoft Corporation), 2005, 2009. Все права защищены.

Перепечатано с разрешения Pearson Education, Inc. из книги Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET (2-е издание), авторы: Кржиштоф Цвалина (Krzysztof Cwalina) и Брэд Абрамс (Brad Abrams). Книга опубликована 22 октября 2008 г. издательством Addison-Wesley Professional в рамках серии, посвященной разработке для Microsoft Windows.

См. также