У меня есть метод со следующей подписью: foo (Образец образца, Аликвота Аликвота)
"foo" необходимо изменить объект Sample, либо первый аргумент, либо второй аргумент, который он может извлечь из своего образца. Например:
foo (Sample sample, Aliquot aliquot) {
Sample out = null;
if (sample != null)
out = sample
else
out = aliquot.getSample()
return out;
}
Но это так не элегантно, что кроме чтения API разработчик не знает, что ссылка на первый аргумент переопределяет образец второго аргумента.
Теперь я могу изменить "foo" на foo (панель SomeMagicalObject), где SomeMagicalObject является кортежем для Sample и Aliquot и содержит некоторую логику ... и т.д.
Но мне интересно, есть ли какие-то закономерности для этого вопроса?