Как организовать файлы классов в C # - PullRequest
4 голосов
/ 07 апреля 2011

Я работаю над простым проектом, и я создал несколько классов, интерфейсов, один статический класс и так далее.Я спрашиваю, как организовать эти файлы в пространства имен.Есть ли хорошая практика для этого, или я должен просто следовать логике моей программы.В настоящее время я думаю, что мне следует переместить интерфейсы в одно пространство имен, а все классы - в другое.Так что вы можете мне посоветовать.Мне действительно любопытно узнать, как лучше отделить мои файлы.

Хорошего дня:)

Ответы [ 5 ]

3 голосов
/ 07 апреля 2011

Вы должны сгруппировать свой код в пространстве имен с другими типами, которые имеют наибольшее сцепление .То есть группировать типы вместе, когда они выполняют общие функции.Тип сплоченности, который вы предлагаете, - это логическая сплоченность, и на самом деле это довольно слабая форма сплоченности.

2 голосов
/ 07 апреля 2011

Пространства имен предназначены главным образом для больших проектов. Поскольку вы работаете над «простым проектом», я предлагаю вам использовать одно пространство имен для всего приложения. Поскольку все в C # должно быть типом или членом типа (т. Е. Не существует глобальных переменных или методов), создаваемые вами типы (объекты, классы, интерфейсы, перечисления и т. Д.) Обычно являются достаточно хорошей организацией. функция для небольшого проекта.

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

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

1 голос
/ 07 апреля 2011

Вы путаете файлы с классами. Вы можете создавать папки в Visual Studio для организации ваших файлов. Таким образом, вы можете группировать интерфейсы и классы (что я обычно и делаю). VS автоматически помещает новые классы, для которых файл находится в этих папках, в одноименное пространство имен. Обычно это не то, что вы хотите (я не знаю, как это отключить, поэтому я не могу вам с этим помочь).

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

1 голос
/ 07 апреля 2011

Единственная причина разбить ваш код на файлы - это сделать ваш код обслуживаемым.

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

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

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

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

1 голос
/ 07 апреля 2011

В определенное пространство имен вы должны поместить все, что касается какого-то вопроса.Например, все, что касается работы со строками, вы должны поместить в отдельное пространство имен, например com.server.string.

Это очень важно, особенно если у вас есть класс с именами, существующими в других пространствах имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...