Это плохой дизайн, потому что вам может потребоваться запустить бизнес-логику в ситуации с другим пользовательским интерфейсом или вообще без него (например, на сервере или в пакетном процессе).Вот что такое разделение бизнес-логики и пользовательского интерфейса.Если это возможно, лучше получить все необходимые пользовательские входные данные заранее в классе пользовательского интерфейса, прежде чем передать их бизнес-логике.Однако, если необходимо получить запрос бизнес-логики для получения дополнительной информации, то лучше, чтобы API бизнес-логики принял делегат метода обратного вызова, который он может вызвать для запроса дальнейшего ввода.Затем уровень пользовательского интерфейса может решить, как лучше всего запросить у пользователя.