Всем доброго. Читаю книгу о паттернах, я правильно понимаю, что концепция “выделить изменяемые свойства и методы подклассов в отдельный интерфейс и наследовать их от него ” нереализуема в свифте из-за невозможности наследоваться от нескольких классов и эта задача решается через протоколы - т.е. суперкласс определяет неизменяемые свойства и методы, а протоколы + расширения позволяют добавить характерное поведение для каждого подкласса? (override тут не рассматривается, подразумевается, что у нас множество подклассов, каждый из которых реализует несколько интерфейсов и override потребовал бы дублировать код)