Но I не говорит о том, что каждый интерфейс должен содержать только один метод. Он говорит о том, что они должны быть компактными, чтобы в коде не было куча пустых методов, которые нужно реализовать из-за протокола. Я поэтому и написал, что опционалы в протоколах это лазейка и помогает избежать нарушения солида, потому что не появляется лишний неиспользуемый код
I не говорит о том, что интерфейс должен определять как можно меньше методов. I построен на утверждении того, что интерфейс использован правильно обьектом тогда и только тогда, когда объект использует всю его функциональность. Мартин не говорит ровным счетом ничего про лбъем интерфейса. Он говорит только о том, что следует строить фасады, чтобы не городить лишних зависимостей потенциально опасных
В Свифт удобно кстати с этим работать. Пишешь сначала сегрегироввнные интерфейсы, а потом соединяешь как хочешь с помощью typealias