Должен ли я поместить каждый класс в отдельный файл? - PullRequest
1 голос
/ 13 марта 2012

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

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

Ответы [ 6 ]

5 голосов
/ 13 марта 2012

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

3 голосов
/ 13 марта 2012

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

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

3 голосов
/ 13 марта 2012

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

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

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

1 голос
/ 13 марта 2012

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

0 голосов
/ 13 марта 2012

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

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

0 голосов
/ 13 марта 2012

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

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

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

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