OutOfMemoryError - когда памяти недостаточно. В таких случаях используют либо OutOfBoundsException, либо IllegalStateException. Вообще в этом методе не нужно кидать ошибку
Денис Загаевский, интересно, какие это задачи, не покрываемые ретрофитом? Не понимаю. Вроде ТС работает с HTTP, не с сокетами
Я всего лишь предложил решение, которое покрывает массу задач
zakkav, А кто вам сказал, что все нужно выделять в интерфейсы?
Интерфейсы нужны по мере необходимости. Нужны, когда код следует сделать слабосвязанным.
И что вы понимаете под словом "кастовать" в данном случае?