Это очень общий вопрос «передового опыта», но вот пример.
Допустим, у меня есть приложение для каталогизации фильмов. Я хочу дать своим пользователям возможность указать, скажем, IMDb или Metacritic для их синопсиса / информации о рейтинге.
Должен ли я сделать это:
if (preferredSupplier == "imdb"){
getIMDbRating(movieName);
}else{
getMetacriticRating(movieName);
}
Или это:
getRating(movieName, preferredSupplier);
Мне больше нравится второй, но это означает, что функция должна будет следовать совершенно другой логике в зависимости от значения второго параметра (например, для Metacritic может потребоваться очистка экрана, где у IMDb может быть хороший API).
Или мне их объединить? Как и в getRating () действует как функция-обертка и вызывает getIMDbRating () или getMetacriticRating () в зависимости от значения второго параметра.