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