Таким образом, «идемпотентность» можно определить как:
Действие, которое при выполнении N раз имеет тот же эффект, что и при выполнении действия только один раз.
Понял, достаточно легко.
Мой вопрос касается тонкости этого определения: считается ли действие идемпотентным само по себе, или вы также должны учитывать данные, передаваемые в действие?
Поясню на примере:
Предположим, у меня есть метод PUT, который обновляет какой-то ресурс, назовем его f(x)
Очевидно, что f(3)
является идемпотентным, пока я подаю 3 в качестве входных данных. И столь же очевидно, что f(5)
изменит значение ресурса (т. е. оно больше не будет равным 3 или любому другому значению, которое было ранее)
Итак, когда мы говорим об идемпотентности, имеем ли мы в виду обобщение действия/функции, например (т. е. f(x)
), или мы имеем в виду действие/функцию + передаваемые в нее данные (т. е. f(3)
)?