Я понимаю, что термин " ссылочная прозрачность" действительно может быть применен только к функциональному коду. Однако вызов метода объекту в объектно-ориентированном коде может иметь аналогичное свойство, то есть возвращаемое значение метода и состояние объекта после вызова метода зависит только от состояния объекта перед вызовом, и аргументы метода.
то есть. функциональная ссылочная прозрачность:
i = foo(n, m);
// return value depends only on n, m
OO "ссылочная прозрачность":
i = obj.foo(n, m);
// return value, and subsequent state of obj, depends
// only on initial state of obj, n, m
Есть ли имя для этого свойства?
Если состояние obj не изменяется во время вызова foo(), тогда стиль "ориентированный объект" эквивалентен функциональной форме, если перегрузка функций поддерживается, поскольку она может быть переписана как:
i = foo(obj, n, m);
// return value depends only on obj, n, m
Однако довольно часто для состояния obj можно изменить вызов метода, поэтому я не уверен, помогает ли это анализу...