Как сгруппировать перечисления, структуры и подклассы в классах? - PullRequest
4 голосов
/ 21 августа 2010

Я слышал плохие вещи о злоупотреблении областями, но при добавлении перечислений в мои классы я помещал их в #region "Enums" в конце класса и делал то же самое со структурами и даже подклассами.

Есть ли лучший / стандартный способ группировки таких элементов по классам?

(Примечание: это помечено C # / VB, но, возможно, такая же ситуация существует и для других языков, таких как Java)

1 Ответ

4 голосов
/ 21 августа 2010

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

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

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

Обратите внимание, что даже вложенные классы / структуры / перечисления могут быть помещены в отдельный исходный файл в C # - просто объявите внешний класс как частичный .

Если у вас есть целая иерархия классов связанных производных классов (подклассов), вы можете даже создать подкаталог для каждой такой иерархии. Например, в подкаталоге с именем Collections может быть файл с именем CollectionBase.cs для абстрактного базового класса и отдельный исходный файл для каждого производного класса.

...