Какие парадигмы ООП вы знаете
Что проверяют
Для аналитика это вопрос не про код, а про то, умеете ли вы говорить с разработчиками на одном языке и строить модель предметной области. Заодно проверяют точность терминов: следом часто просят показать принципы на диаграмме классов из вашего проекта.
Как отвечать
Начните с уточнения, это сразу добавит очков. Парадигмы программирования это процедурная, объектно-ориентированная, функциональная, декларативная. А под этим вопросом обычно имеют в виду принципы ООП, их называют четыре:
- абстракция: в модели остаются только свойства, важные для задачи. У «Клиента» в CRM есть контакты и сегмент, но нет цвета глаз;
- инкапсуляция: объект сам отвечает за своё состояние, снаружи виден только контракт. Статус заявки меняется операциями «согласовать» и «отклонить» с проверкой правил, а не прямой записью в поле. Для аналитика это близко к описанию API: что можно вызвать и что вернётся, без деталей реализации;
- наследование: отношение «является». «Оплата картой» и «Оплата по СБП» наследуют общую «Оплату» с суммой и датой. На диаграмме классов UML это обобщение, стрелка с полым треугольником;
- полиморфизм: одна операция, разное поведение. «Рассчитать комиссию» есть у каждого вида оплаты, но считается по-своему, и вызывающему коду не важно, какой вид перед ним.
Дальше свяжите с работой: доменная модель, диаграмма классов, ER-модель, описание сущностей в требованиях. Хорошо упомянуть разницу между ассоциацией, агрегацией (часть живёт отдельно) и композицией (часть существует только внутри целого), а также принцип «композиция предпочтительнее наследования»: общее поле ещё не повод для иерархии.
Где спотыкаются
Отвечают заученными определениями из учебника по Java и не могут привести пример из своей предметной области.
Сводят инкапсуляцию к модификатору private. Суть в том, что правила изменения данных живут в одном месте.
Строят наследование по признаку «есть общие поля». «Сотрудник» и «Клиент» с именем и телефоном не обязаны наследовать «Человека», если у них разные поведение и жизненный цикл. Аналитик, который это видит, ценится выше.