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

Приведи примеры использования принципов SOLID

S - Single Responsibility Principle (Принцип единственной ответственности)
Каждый класс должен иметь только одну причину для изменения.

javascript
class User {
  constructor(name, email) {
    this.name = name;
    this.email = email;
  }
}

class UserRepository {
  save(user) {
    // Логика сохранения пользователя в БД
  }
}

O - Open/Closed Principle (Принцип открытости/закрытости)
Классы должны быть открыты для расширения, но закрыты для модификации.

javascript
class Shape {
  area() {
    throw new Error('Метод area должен быть реализован');
  }
}

class Circle extends Shape {
constructor(radius) {
super();
this.radius = radius;
}

area() {
return Math.PI * this.radius ** 2;
}
}

text

**L - Liskov Substitution Principle (Принцип подстановки Барбары Лисков)**  
Подклассы должны заменять свои базовые классы.  

```javascript
class Bird {
  fly() {
    console.log('Flying');
  }
}

class Penguin extends Bird {
  fly() {
    throw new Error('Пингвины не летают');
  }
}
// Нарушение LSP, лучше разделить на FlyingBird и NonFlyingBird.

I - Interface Segregation Principle (Принцип разделения интерфейсов)
Клиенты не должны зависеть от интерфейсов, которые они не используют.

javascript
class Printer {
  print() {
    // Печать документа
  }
}

class Scanner {
  scan() {
    // Сканирование документа
  }
}
// Вместо одного интерфейса с print() и scan().

D - Dependency Inversion Principle (Принцип инверсии зависимостей)
Зависимости должны строиться на абстракциях, а не на конкретных реализациях.

javascript
class Database {
  save(data) {
    // Сохранение в БД
  }
}

class UserService {
  constructor(database) {
    this.database = database;
  }

  createUser(user) {
    this.database.save(user);
  }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы