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