Я часто хочу вызвать определенную функцию только один раз, но мне нужно вызвать ее из другой функции, которая вызывается повторно. Например, сделать снимок чего-либо для дальнейшего использования. Я обычно делаю это, устанавливая глобальное логическое значение.
Мне интересно, действительно ли то, как я это делаю, лучше?
Кажется, я помню, что читал, что глобальные переменные плохие, а глобальные логические переменные еще хуже!
Во всяком случае, так я обычно запускаю определенный метод только один раз:
В моем начальном наборе переменных ...
private var myStatus:Boolean = false;
Затем внутри функции, которая часто вызывается ...
if (!myStatus) {
doMyFunction();
myStatus = true;
}
Мне это кажется довольно логичным, но верно ли это ?
ОБНОВЛЕНИЕ : На основе того, что я узнал из ваших ответов, вместо проверки глобальной логической переменной я теперь сначала проверяю, существует ли узел XML (ранее я сохранял изображения в структуре XML). происходит любая запись на диск), и, если это не так, я добавляю новый узел с данными изображения в кодировке base64. Я все еще устанавливаю логический флаг, чтобы позже я мог перезаписать пустое изображение данными, отредактированными пользователем, если это будет необходимо. Работает отлично. Спасибо всем за помощь!
Теперь я чувствую себя более комфортно при использовании этой конкретной (небезопасной) системы в определенных ситуациях.