Проверяет знание классификации паттернов проектирования и их назначения в разработке ПО.
Дизайн-паттерны — это типовые решения часто встречающихся задач проектирования. Они не являются готовым кодом, а описывают общий подход, который можно адаптировать под конкретную ситуацию. Паттерны помогают сделать код более гибким, переиспользуемым и понятным.
В книге «Банды четырёх» (GoF) выделено 23 паттерна, разделённых на три группы по цели применения:
Рассмотрим простой пример фабричного метода на JavaScript:
class Car { constructor(model) { this.model = model; } }
class CarFactory { createCar(model) { return new Car(model); } }
const factory = new CarFactory();
const myCar = factory.createCar('Tesla');
console.log(myCar.model); // TeslaЗдесь фабрика скрывает детали создания объекта, позволяя легко менять тип создаваемого продукта.
Адаптер позволяет использовать несовместимые интерфейсы:
class OldAPI { request() { return 'old data'; } }
class NewAPI { getData() { return 'new data'; } }
class Adapter { constructor(api) { this.api = api; } request() { return this.api.getData(); } }
const adapter = new Adapter(new NewAPI());
console.log(adapter.request()); // new dataНаблюдатель (Observer) позволяет объектам подписываться на события:
class Subject { constructor() { this.observers = []; } subscribe(fn) { this.observers.push(fn); } notify(data) { this.observers.forEach(fn => fn(data)); } }
const subject = new Subject();
subject.subscribe(data => console.log('Observer 1:', data));
subject.notify('hello'); // Observer 1: helloЗнание групп паттернов помогает быстро выбирать подходящее решение при проектировании архитектуры. Порождающие паттерны полезны для управления созданием объектов, структурные — для организации классов, поведенческие — для гибкого взаимодействия. Используйте их осознанно, не перегружая код лишними абстракциями.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
TypeScript
Ключевые слова
Подпишись на Golang Developer в телеграм