2012-03-13 3 views
1

Должен ли я помещать каждый класс в отдельный файл? Даже те короткие вспомогательные классы, которые используются только в одном месте? Нравится этот:Должен ли я помещать каждый класс в отдельный файл?

public class IntToVisibilityConverter : GenericValueConverter<int, Visibility> 
{ 
    protected override Visibility Convert(int value) 
    { 
     return value == 0 ? Visibility.Collapsed : Visibility.Visible; 
    } 
} 
+0

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

ответ

3

Это зависит от личных предпочтений, но мне нравится это делать.

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

Я нахожу, что это облегчает получение обзора того, из чего состоит ваш проект из Обозревателя решений.

0

Это хорошая практика.

Вы можете легко найти класс, если вы назвали файл после класса.

Resharper имеет встроенные ошибки для классов не соответствуют имени файла, они находятся в ...

+0

Зачем мне искать класс, который используется только в одном месте и объявлен в том же файле? – Poma

+1

@Poma - Сегодня, только в одном месте. И завтра? Вы напишете новый, потому что вы не можете найти существующего помощника. – Oded

+0

@Poma - Что делать, если вам вдруг понадобится использовать его в другом месте приложения, когда он будет расширен позже? Создайте свое приложение в отношении расширяемости, а не для быстрого доступа. –

5

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

+0

Какой ответ. Это обычно, но действительно вопрос мнения? Какие? – Oded

+1

Я не вижу проблемы. Обычно это лучшая практика, но некоторые люди этого не делают, что с этим не так? – Magrangs

+1

«Обычно лучшая практика», потому что некоторые компании, над которыми я работал, не имеют ее как лучшей практики, а некоторые делают.«Иногда вопрос мнения», потому что некоторым людям действительно все равно, а некоторые делают. Проблема заключается в самом вопросе, а не в ответе, и другие люди просто повторили то, что я сказал. Надеюсь, это очистит его для вас. – Magrangs

3

Я перефразирую вопрос для вас: следует ли использовать StyleCop? (он включает это правило). Ответ - да. Я использую его, и мой код гораздо читабельнее (но я должен признать, что я отключил все правила, требующие полной документации по методу :-))

Я действительно думаю, что когда вы программируете в команде, фиксированный и унифицированный формат кода очень важен. И даже когда вы программируете «соло». Захламленный код труднее читать, а ошибки могут спрятаться лучше в беспорядке :-)

1

Как правило, лучше всего поместить каждый класс в отдельный файл. Принимая во внимание ваши короткие вспомогательные классы; вы можете создать вспомогательный класс, который содержит все ваши вспомогательные методы, чтобы предотвратить слишком много классов. Если ваш вспомогательный класс становится слишком большим, вы можете отделить свои вспомогательные функции по категориям

0

Как правило, ИМО да. Подумайте о новых разработчиках, которые должны найти, где живет код. Да, вы можете использовать go to definition, но это не все, закончите все. Тем не менее, я скажу, что иногда, если у вас есть небольшой интерфейс и он используется только для класса, в котором он находится, то вы, вероятно, можете уйти от него. Тем не менее, даже это может расширяться, а затем должно быть выведено (и, возможно, такие контракты должны быть в другом пространстве имен).

Итак, в конечном счете, я бы сказал, что большинство времени, да, но есть некоторые оговорки. Как и в любом случае, он никогда не бывает черным и белым

Смежные вопросы