Поделиться через


Проектирование статических классов

Замечание

Это содержимое перепечатывается разрешением Pearson Education, Inc. из руководства по проектированию платформы: соглашения, идиомы и шаблоны для повторно используемых библиотек .NET, 2-го выпуска. Этот выпуск был опубликован в 2008 году, и книга с тех пор была полностью пересмотрена в третьем выпуске. Некоторые сведения на этой странице могут быть устаревшими.

Статический класс определяется как класс, содержащий только статические члены (конечно, помимо элементов экземпляра, унаследованных от System.Object и, возможно, частного конструктора). Некоторые языки обеспечивают встроенную поддержку статических классов. В C# 2.0 и более поздних версиях, когда класс объявлен статическим, он является запечатанным, абстрактным, и его элементы экземпляра не могут быть переопределены или объявлены.

Статические классы представляют собой компромисс между чистой объектно-ориентированной структурой и простотой. Они обычно используются для предоставления ярлыков другим операциям (например, System.IO.File), держателям методов расширения или функциональным возможностям, для которых не требуется полная объектно-ориентированная оболочка (например, System.Environment).

✔️ Используйте статические классы по мере необходимости.

Статические классы следует использовать только в качестве вспомогательных классов для объектно-ориентированного ядра платформы.

❌ НЕ рассматривайте статические классы как прочие контейнеры.

❌ НЕ объявляйте или переопределяйте члены экземпляра в статических классах.

✔️ DO объявляйте статические классы как запечатанные, абстрактные и добавляйте конструктор частного экземпляра, если язык программирования не имеет встроенной поддержки статических классов.

© Часть 2005, 2009 Корпорация Майкрософт. Все права защищены.

Перепечатан с разрешения Pearson Education, Inc. из Руководство по проектированию: Соглашения, идиомы и шаблоны для повторного использования библиотек .NET, 2-е издание Кшиштоф Чвалина и Брэд Абрамс, опубликованное 22 октября 2008 года Addison-Wesley Профессиональный в рамках серии разработки Microsoft Windows.

См. также