SRP (единственная ответственность): каждый класс делает одно дело.
OCP (открыт/закрыт): добавляем новые способы оплаты/уведомления без правок ядра.
LSP (подстановка Лисков): любая реализация интерфейса взаимозаменяема.
ISP (разделение интерфейсов): мелкие интерфейсы под конкретные нужды.
DIP (инверсия зависимостей): высокоуровневые модули зависят от абстракций
SRP (единственная ответственность): каждый класс делает одно дело.
OCP (открыт/закрыт): добавляем новые способы оплаты/уведомления без правок ядра.
LSP (подстановка Лисков): любая реализация интерфейса взаимозаменяема.
ISP (разделение интерфейсов): мелкие интерфейсы под конкретные нужды.
DIP (инверсия зависимостей): высокоуровневые модули зависят от абстракций
// Пример кода
function hello(name) {
console.log(`Hi, ${name}!`);
}
hello("Sergey");