Продолжаем тему вопросов о паттернах проектирования на собеседовании. Напоминаю, что наша цель — проявить инициативу, показать свои знания и убедить, что мы разбираемся в теме. Также мы, хоть немного, но всё же можем управлять ходом интервью, направляя его в ту область, где способны проявить себя с лучшей стороны, если, конечно, нас не прервут =)

Напоминаю, что вас спросили о том, какие паттерны проектирования вы чаще всего использовали в своей работе. На этот раз вы вспомнили паттерн "Стратегия". Хороший выбор! 😊 Давайте разберём, к чему это может вас привести.

Как всегда, вы безусловно должны знать, что представляет собой классический паттерн "Стратегия" и для чего он нужен. А помимо этого, наша с вами стратегия следующая: нужно привести пример, который связан с основами платформы .NET. Здесь важно вспомнить, что паттерн "Стратегия" отлично реализуется через делегаты. А где мы чаще всего используем делегаты? Правильно — в LINQ. Таким образом, "Стратегия" оказывается одним из наиболее часто применяемых паттернов.

Кстати, как раз сейчас я работаю над большим курсом по LINQ! 😊

Итак, рассказываем, что такое LINQ, для чего оно нужно. Обязательно упоминаем, что паттерн "Стратегия" в LINQ (если мы говорим о синтаксисе методов) реализован через extension methods (рассказываем, что это) и встроенные (универсальные) делегаты. Рассказываем о том, что такое делегаты. Основным делегатом, который используется в LINQ, является Func, но если будет возможность, упомяните также Action и Predicate. Обязательно следует упомянуть, что LINQ реализован на базе интерфейса IEnumerable (скоро будет видео). Тут вас, кстати, могут спросить про паттерн "Итератор", но это тема другого поста. Учтите, что разговор про IEnumerable может плавно перерасти в разговор про IQueryable и expression tree, где довольно часто возникает затык, так что подготовьтесь 😊

Ну и как вишенка на торте — вас могут попросить написать свой собственный LINQ-метод.

Учтите, что практически на любом собеседовании, кроме, пожалуй, Senior-позиций, все эти вопросы всё равно спросят. Так что лучше сразу показать, что вы в теме! 💪