2014-07-22 3 views
4

У меня есть типичное веб-приложение с контроллерами, вызывающими бизнес-методы. Если методы в бизнес-классах будут реализованы с использованием статических методов или методов экземпляров. Классы бизнес-уровня не содержат информации о состоянии.Методы экземпляров Vs Статические методы в бизнес-уровне

Дополнительная информация + Бизнес-классы не поддерживают государственную специфическую информацию. + Создал ли экземпляр этих объектов на основе запроса много памяти, а не используя статические методы.

+0

@Stijn будет ... –

+0

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

ответ

1

«Да» считается ответом? Я ненавижу это говорить, но оба ответа действительны; выбор между ними требует контекста. Если вы не используете для каждого состояния экземпляра, то: зачем создавать экземпляры? Однако следует отметить, что состояние каждого экземпляра полезно для сценариев IoC/DI, которые, в свою очередь, удобны для тестирования.

+0

Всегда используйте методы экземпляра, созданные через некоторый IOC. Причиной этой рекомендации является то, что это позволяет правильно тестировать ваше приложение, позволяя тестеру предоставлять Stubs для вашего уровня бизнес-логики и концентрировать тест только на интересующем их уровне. Хотя его можно использовать Fake Shims для переадресации вызов статического метода, который доступен только в более высоких версиях VS.net (Ultimate) и доступен только для тестирования устаревшего кода. Если вы начинаете с нуля, представите всю свою логику через интерфейсы, что, в свою очередь, означает, что они не являются статикой. – PhillipH

+1

@PhillipH всегда будьте осторожны с любым утверждением, которое начинается с «всегда»; p Что представляет собой подходящий подход, очень многое зависит от проблемы и того, что «решается» разными подходами. Это, ИМО, почти бессмысленно говорить в абсолютах. Гораздо полезнее дать представление о сильных и слабых сторонах каждого варианта и позволить разработчику выбрать наиболее подходящий инструмент для работы перед ними. –

+0

Марк согласился «будьте осторожны», но методы экземпляров лучше проверяются, чем статики, и я не нашел экземпляр, где это не так. Вероятно, следовало бы сказать «сильную рекомендацию». :-) – PhillipH

Смежные вопросы