Свойства класса .Net - получить аксессор - сколько обработки слишком много? - PullRequest
2 голосов
/ 16 августа 2011

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

В случае, когда для каждого поиска требуется вычисление переменной длины, я склонен написать метод GetFoo(), который в некотором роде подразумевает, что для извлечения значения может потребоваться некоторая обработка.

Это плохая практика? Существуют ли какие-либо рекомендации относительно того, какой (если таковой имеется) объем обработки следует или не следует ожидать при вызове метода доступа get?

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

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

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

Одна рекомендация, которую я помню однажды, заключалась в том, что значения свойств не должны изменяться между вызовами, если они не изменяются напрямую. Если это изменяется, это идет в методе. Не уверен, согласен ли я с этим.

В конце концов, это всего лишь рекомендации :-) и использование их в методах, безусловно, не плохая практика.

2 голосов
/ 16 августа 2011

Рекомендации .NET Framework являются хорошим источником для подобных рассуждений. Выбор между свойством и методом описан здесь . Совет вполне обоснованный.

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