Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Вопрос о partial classes


Автор: ДобренькийПапаша 2.8.2010, 13:35
Используете ли вы возможность разделения кода классов (отделение кода визуального редактора не в счёт) и если используете, то каким принципом руководствуетесь при разделении? Ситуации могут быть разные, я понимаю, соответственно и принципы могут быть разные, но тем не менее, хочу пример!)))

Автор: mrbrooks 2.8.2010, 14:04
Цитата(ДобренькийПапаша @  2.8.2010,  14:35 Найти цитируемый пост)
Используете ли вы возможность разделения кода классов

да


Цитата(ДобренькийПапаша @  2.8.2010,  14:35 Найти цитируемый пост)
и если используете, то каким принципом руководствуетесь при разделении?

когда не спасают закладки




Автор: ДобренькийПапаша 2.8.2010, 14:32
Цитата(mrbrooks @ 2.8.2010,  14:04)
когда не спасают закладки

Что за закладки? Регионы?

Автор: mrbrooks 2.8.2010, 15:11
Цитата(ДобренькийПапаша @  2.8.2010,  15:32 Найти цитируемый пост)
Что за закладки?

не. инструмент студии для навигации по коду. 

Автор: ДобренькийПапаша 2.8.2010, 15:40
Цитата(mrbrooks @ 2.8.2010,  15:11)
Цитата(ДобренькийПапаша @  2.8.2010,  15:32 Найти цитируемый пост)
Что за закладки?

не. инструмент студии для навигации по коду.

Ага, нашёл. Раньше не пользовался)))
У меня была страница на 2к строк. Уже становится неприятно передвигаться по такому коду (хотя я закладки не использовал smile )
А до скольки у вас закладок бывает на страницу?))) И когда вам уже неудобно по одной странице бегать становится?

Автор: mrbrooks 2.8.2010, 15:48
Цитата(ДобренькийПапаша @  2.8.2010,  16:40 Найти цитируемый пост)
А до скольки у вас закладок бывает на страницу?)))

да хз. считать надо. как то об этом не задумывался.

Цитата(ДобренькийПапаша @  2.8.2010,  16:40 Найти цитируемый пост)
И когда вам уже неудобно по одной странице бегать становится?

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

Автор: Gleb 2.8.2010, 21:10
Цитата(ДобренькийПапаша @  2.8.2010,  16:35 Найти цитируемый пост)
то каким принципом руководствуетесь при разделении

Принцип может быть только один - отделение генерируемой части класса от той, которую вы пишите вручную. Например, мапперы для ORM: есть часть, сгенерированная по структуре БД и есть часть с вашими собственными методами. Если бы не было partial, то ваш ручной код все время перезатирался бы генерённым.

Собственно, для этого partial и придумали:
  • При работе над большими проектами распределение класса между различными файлами позволяет нескольким программистам работать с ним одновременно.
  • При работе с использованием автоматически создаваемого источника код можно добавлять в класс без повторного создания файла источника. Система Visual Studio использует этот подход при создании форм Windows Forms, программы оболочки веб-службы и т.д. Можно создать программу, использующую эти классы, без необходимости изменения файла, созданного системой Visual Studio.
При появлении систем управления версиями, умеющих мерджить, первый пункт автоматически отпал.

Все остальные варианты использования разделяемых классов - признак неправильной архитектуры. И если ваш компьютер не справляется с огромным классом - это означает, что ваш класс - God object и нарушает принцип единственности ответственности.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)