Иногда вам приходится проверять / вычислять некоторые значения / условия при создании объекта. И если он может выбросить исключение - constructro очень плохой способ. Поэтому вам нужно сделать что-то вроде этого:
var value = new Instance(1, 2).init()
public function init() {
try {
doSome()
}
catch (e) {
soAnotherSome()
}
}
Где все дополнительные вычисления находятся в init (). Но только вы, как разработчик, знаете об этом init (). И, конечно, после нескольких месяцев вы просто забыли об этом. Но если у вас есть фабрика - просто сделайте все, что вам нужно, одним способом, сокрыв этот init () от прямого вызова - поэтому проблем нет. При таком подходе нет проблем с падением на создание и утечкой памяти.
Кто-то рассказал вам о кешировании. Хорошо. Но вы также должны помнить о шаблоне Flyweight, который приятно использовать с фабричным способом.
Вы не хотите делать это. И ReSharper и CodeRush хотят клавиатуру. А именно, CodeRush повторно отображает клавишу выхода (ESC) в его собственных целях. ReSharper не нравится это (примечание: ReSharper doens't делает что-либо специальное с клавишей выхода, но этому все еще не нравится он).
Что касается выбора между ними... у них обоих есть свои точки. CodeRush имеет лучшую шаблонную обработку и больше рефакторингов. ReSharper создал в поблочном тестировании на NUnit и здоровом наборе включений. ReSharper также имеет Шаблоны и убивание Сочетаний клавиш.
Я использовал Resharper некоторое время и недавно установил свободную Coderush Express также. Приблизительно после одной недели, я могу сказать, что Coderush не стояла на пути в малейшем, и при этом между этими двумя инструментами не было конкуренции. По общему признанию я - путь, более знакомый с Resharper, и не знал бы, не функционировала ли половина Coderush, но я в настоящее время доволен этой установкой.
Обновление: клавиша Tab для движения в другие использования в CodeRush иногда вмешивается при попытке завершить тип в шаблоне. Например, ввод foreach создает шаблон foreach. Если при редактировании шаблонных полей, вкладка поражена, скажем, для завершения записи, CodeRush архивирует Вас к некоторому другому месту. К счастью Esc восстанавливается с этого.
См. комментарии для совета относительно повторно отображающихся ключей.
Я был достаточно жадным, чтобы сделать это. Это взяло мои возрасты VS2008 для запущений. Все замедлилось. У меня есть 1 ГБ поршня. Не уверенный, если это имело место. Я удалил coderush, потому что я больше привык к resharper раскладке клавиатуры.
Я успешно использую оба инструмента. Да, обоим нужна клавиатура, но они хотят ее по-разному. Вы можете настроить их для совместной работы без особых проблем. Все дело в конфигурации и кривой обучения.
Основные проблемы, с которыми я столкнулся: управление скобками и скобками (просто выберите, какая из них будет делать это), шаблоны (не настоящая проблема: используйте вкладку для одного и пространство для другой), предложения (настройте разные ключи для каждого инструмента).
Плагины CodeRush и плагины Resharper хорошо работают вместе, и результат - настоящий восторг. Между инструментами нет конфликтов. Просто потратьте две недели, чтобы с легкостью им пользоваться.
Использование Resharper с CodeRush совсем не проблема. Некоторое время я работал в таком стиле. Но почему? IMHO CodeRush в паре с Refactorpro намного лучше по производительности и удобству использования, чем resharper. Также resharper снижает производительность. Почти все функции предполагают, что интеграция nunit, вероятно, одинакова, попробуйте найти их в resharper или codeRush и используйте только один из них. Я предпочитаю кодеруш