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