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