Лучшие практики: Когда не/к используют частичные классы

35
задан Wayne Bloss 9 December 2008 в 09:02
поделиться

8 ответов

Частичные классы , прежде всего для использования генератора кода, такого как разработчики - но я использую подход, который Вы процитировали - в особенности, когда объект реализует несколько (нетривиальных) интерфейсов, я нахожу полезным повредить его 1 файл на интерфейсную реализацию. У меня также обычно есть файл для статических методов, которые обычно достаточно отличаются от методов экземпляра гарантировать разделение.

27
ответ дан Marc Gravell 24 September 2019 в 00:57
поделиться

Короткий ответ: Если все классы являются Вашим кодом, Вам действительно не нужны классы помощника, который делает недействительным Вашу потребность в partials.

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

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

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

4
ответ дан Zachary Yates 24 September 2019 в 00:57
поделиться

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

Разъединение является главной причиной I как это решение. Частный внутренний класс намного менее связан со всем остальным, потому что ничто иное не видит его или использует его (хотя они могут говорить о потенциале для него для доступа к частным данным родительского класса, которые обычно были бы плохой идеей).

2
ответ дан Neil 24 September 2019 в 00:57
поделиться

Я не очень большой поклонник частичных классов и не использую их сам.

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

, Возможно, если Вам разделяли классы на многие файлы, возможно, Ваши классы делают к очень... просто мысли:)

1
ответ дан Nathan W 24 September 2019 в 00:57
поделиться

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

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

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

1
ответ дан Andrew Kennan 24 September 2019 в 00:57
поделиться

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

0
ответ дан dkretz 24 September 2019 в 00:57
поделиться

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

0
ответ дан Samnang 24 September 2019 в 00:57
поделиться

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

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

7
ответ дан Patrik Svensson 24 September 2019 в 00:57
поделиться
Другие вопросы по тегам:

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