Если что-то работает как положено 32 раза подряд, а затем не работает должным образом, я думаю, что вы могли бы оправдать превращение этого в исключительное условие, если бы это был единичный случай.
Учитывая ситуацию, которую вы описываете, я думаю, что использование исключений нецелесообразно, так как после продажи 32 домов банк по-прежнему будет вне их (это новое «нормальное» состояние), и обработка исключенийна самом деле довольно медленный в Java по сравнению с обычной обработкой.
Одна вещь, которую вы могли бы сделать, - это более точное отражение реального взаимодействия.В «Монополии» банкир просто скажет вам, что вы не можете купить дом, если его не осталось.
Потенциальная модель для этого выглядит следующим образом:
public House buy(Player player, PropertyValue propertyValue) {
House propertyHouse = null;
if (houseCount > 0) {
propertyHouse = new House(player, propertyValue);
houseCount--;
}
return propertyHouse;
}
Это также позволит вамдобавить поведение к объекту Дома и сделать процесс запроса / покупки дома немного более естественным.Если нет доступных домов, вы их не получите.