Должна ли функция искать данные или извлекать их?

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

При инициализации данные сохраняются в свойстве сервиса. Он также содержит закрытый метод, который перебирает данные, считая элементы с определенным свойством.

Когда вызывается этот закрытый метод, я передаю данные в качестве аргумента:

myPrivateFunction(this.data);

Тем не менее, я подумал о переименовании data имущество. Это заставит меня переименовать каждый аргумент при каждом вызове. (Предположим, я использую IDE, которая не может сделать это автоматически).

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

Интересно, есть ли какие-либо правила или соглашения о том, должна ли функция извлекать данные для работы сама по себе или по аргументу?

1 ответ

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

Другие вопросы по тегам