какой шаблон использовать для метода мультиаргумента?

У меня есть метод со следующей подписью: нечто (Демонстрационное демонстрационное, Кратное определенное количество)

"нечто" должно изменить Демонстрационный объект, или первый аргумент или от второго аргумента, это может извлечь свой Образец. Например:

foo (Sample sample, Aliquot aliquot) {
    Sample out = null;
    if (sample != null)
       out = sample
    else
       out = aliquot.getSample()

    return out;
}

Но это настолько неизящно кроме чтения API, разработчик не знает, что ссылка первого аргумента переопределяет Образец второго аргумента.

Теперь, я мог изменить "нечто" на нечто (панель SomeMagicalObject), где SomeMagicalObject является кортежем для Образца и Определенного количества и содержит некоторую логику... и т.д.

Но я задаюсь вопросом, там некоторые шаблоны для этого вопроса?

1
задан Brian McKenna 14 May 2010 в 00:36
поделиться

3 ответа

Я бы либо изменил его на foo (Образец образца) и заставил вызывающего абонента передать объект образца, либо изменил его на foo (Алигота аликвоты) , и заставьте вызывающего абонента установить образец на аликвоту.

Вы правы в том, что если вы разрешите оба способа, вызывающая сторона не сможет понять, какой из них требуется. Удалите неизвестное и заставьте вызывающего сделать это так или иначе.

2
ответ дан 3 September 2019 в 00:33
поделиться
sample.foo( aliquot );
0
ответ дан 3 September 2019 в 00:33
поделиться

Зависит от того, какова общая картина, но если вы не контролируете объект Sample, вы всегда можете просто сделать это без метода:

Sample foo = (sample != null) ? sample : aliquot.getSample();

0
ответ дан 3 September 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: