Я написал приложение, которое возвращает текущий счет в теннисном матче, такой как текущий счет в сетах, текущий счет в играх, текущие очки. Оценка меняется, когда игрок 1 или 2 выиграл очко. Я сделал это самым простым способом, просто имейте 3 функции в каждом из условий проверки в ifs, а затем перейдите к следующему методу следующим образом:
Score {
Point currentPoints;
Integer currentGamesWon;
Integer currentSetsWon;
}
addPoint (playerScore, rivalScore){
if(15)
set 30;
...
if(40 && more than 2 points of advantage)
setGamesWon()
}
setGamesWon(playerScore, rivalScore) {
gamesWon++;
if(games won > 6 && advantage > 2 && NotFifthSet) {
setSetsWon(playerScore, rivalScore);
}
}
setSetsWon(playerScore, rivalScore) {
...
}
Я, к сожалению, не могу поставить здесь полную реализацию, но янадеюсь, вы понимаете идею. Был также код разрыва связи и вся необходимая логика.
И мой вопрос: вы видите какой-нибудь умный способ написать это? Я имею в виду использование шаблонов проектирования или какой-нибудь умный способ удалить много if, которые есть в текущем решении?