Встречается на собеседованиях • сегодня

Какие знаешь паттерны проектирования

Паттерны проектирования — это проверенные решения типовых проблем в разработке ПО. Основные группы: **Порождающие** (создание объектов): - **Singleton** — гарантирует единственный экземпляр класса. ```csharp public sealed class Singleton { private static Singleton _instance; private Singleton() {} public static Singleton Instance => _instance ??= new Singleton(); } ``` - **Factory Method** — делегирует создание объектов подклассам. **Структурные** (компоновка объектов): - **Adapter** — адаптирует интерфейс класса под другой интерфейс. - **Composite** — представляет объекты в виде древовидной структуры. **Поведенческие** (взаимодействие объектов): - **Observer** — уведомляет зависимые объекты об изменениях (например, события в C#). - **Strategy** — инкапсулирует алгоритмы, делая их взаимозаменяемыми. Пример **Strategy**: ```csharp public interface ISortStrategy { void Sort(List list); } public class QuickSort : ISortStrategy { ... } public class Sorter { private ISortStrategy _strategy; public void SetStrategy(ISortStrategy strategy) => _strategy = strategy; public void Sort(List list) => _strategy.Sort(list); } ``` Паттерны улучшают читаемость, расширяемость и поддерживаемость кода.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы