Сколько классов программист должен вставить один файл?

Я также обнаружил, что System.Windows.Threading.Dispatcher.CurrentDispatcher.Invoke() не всегда является диспетчером целевого контроля, точно так же, как dotNet пишет в своем ответе. У меня не было доступа к диспетчеру управления, поэтому я использовал Application.Current.Dispatcher, и он решил проблему.

16
задан Ryan Guill 22 January 2009 в 16:47
поделиться

11 ответов

Лично, я предлагаю один класс на файл , если вторичные классы не являются частными к основному классу в файле. Например, вложенный класс в C# остался бы в файле родительских классов, но в служебные классы, которые могли бы быть полезными в другом месте, врываются их собственный файл или даже пространство имен.

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

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

23
ответ дан 30 November 2019 в 10:10
поделиться

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

21
ответ дан 30 November 2019 в 10:10
поделиться

1 класс = 2 файла..h и.c, Вы дети так удачливы:)

8
ответ дан 30 November 2019 в 10:10
поделиться

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

В C# и людях Java имеют тенденцию придерживаться одного файла в классе.

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

В C++ реализация класса является отдельной от определения класса, таким образом, каждый класс {/ тело /} меньше, чем на другом языке, и это означает, что классы более удобно измерены для того, чтобы группироваться в одном файле.

В C++, если Вы пишете библиотеку (например, стандартная библиотека шаблонов), можно поместить все классы в один файл. Пользователи только должны включать один заголовочный файл, и они заставляют все классы тогда, таким образом, его более легкое для них работать с.

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

5
ответ дан 30 November 2019 в 10:10
поделиться

Я поместил классы в тот же файл, если они принадлежат вместе, или для techinical или для эстетических причин. Например, в приложении, которое обеспечивает сменный интерфейс, классы Плагин (базовый класс для плагинов) и PluginManager, который я обычно соединял бы в том же файле. Однако, если бы файл становится слишком большим для моего вкуса, я разделил бы их на отдельный файл.

я отмечаю, что пишу код главным образом в Python в данный момент, и это влияет на мой дизайн. Python очень гибок в том, как я добираюсь для деления материала на модули, и имеет хорошие инструменты для управления пространствами имен вещей. Например, я обычно помещал весь код для приложения в модуле Python (каталог с __init__.py) и имею собственные имена импорта модуля от подмодулей. API - тогда что-то как applib.PluginManager, а не applib.pluginstuff.PluginManager.

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

3
ответ дан 30 November 2019 в 10:10
поделиться

Один класс = один файл. Всегда. Кроме того, когда один класс = несколько файлов в C# или класс содержит внутренние классы и т.д., конечно;)

2
ответ дан 30 November 2019 в 10:10
поделиться

Один на файл наш стандарт. Единственное исключение - то, что для класса и это ввело набор, мы соединяем тех.

Со временем я приезжал для понимания, тот "маленький класс" всегда имеют тенденцию расти. И затем Вы захотите разделить их, смущая всех остальных в команде (и Ваш сам).

2
ответ дан 30 November 2019 в 10:10
поделиться

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

2
ответ дан 30 November 2019 в 10:10
поделиться

Один класс на файл, кажется, стандарт. Это - способ, которым я обычно делаю это также.

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

1
ответ дан 30 November 2019 в 10:10
поделиться

На Вашем объектно-ориентированном языке, за какими инструкциями Вы следуете для группировки классов в единственный файл?

Это зависит. В работе в команде я пытаюсь следовать стандартам команды; в сольной работе я склоняюсь больше к whatever-I-please.

В сольной работе, тогда...

Вы всегда даете каждому классу отдельный файл? Вы соединяете сильно связанные классы? Вы когда-либо определяли несколько реализаций интерфейса в одном файле?

номер иногда. Да.

Вы делаете это на основе того, каким количеством строк кода реализация могла бы быть или как "нарушенный" это могло бы смотреть на пользователя класса? Или пользователь предпочел бы иметь все на одном месте?

Это главным образом на основе:

  • , Как легкий это должно перейти? Огромный долгий исходный файл, со многими классами, является более трудным.
  • , Как легкий это должно отредактировать? При редактировании нескольких, коротких, связанных классов, может быть легче, если они - все в одном исходном файле с разделителем, чем если бы они находятся в нескольких исходных файлах, учитывая, что я работаю, мой текстовый редактор максимизировал показ одного исходного файла за один раз.
0
ответ дан 30 November 2019 в 10:10
поделиться

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

0
ответ дан 30 November 2019 в 10:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: