Чем abstract class и interface class отличается от mixin?
Что хотят услышать интервьюеры:
Отличие от mixin: abstract class и interface class обычно используют, когда нужна задача из контекста «OOP», а mixin применяют в другом уровне абстракции или при другой сложности.
Ответ:
Как выбирать:
- интерфейсы полезны для тестирования
- абстрактный класс может иметь общую реализацию
- оцените стоимость поддержки, тестируемость и понятность для команды
Ошибка: выбирать инструмент по привычке, а не по требованиям конкретного flow. Сильный ответ: приведите пример, когда abstract class и interface class уместен, и пример, когда лучше выбрать mixin.