Ответ
ООП (Объектно-Ориентированное Программирование) — это парадигма программирования, в которой программа структурируется вокруг объектов, объединяющих данные (свойства/поля) и поведение (методы).
Основные принципы и их реализация в JavaScript (ES6+):
-
Инкапсуляция: Сокрытие внутреннего состояния и деталей реализации, предоставление публичного интерфейса.
class Logger { #logLevel = 'INFO'; // Приватное поле (используется #) setLogLevel(level) { // Публичный метод-сеттер this.#logLevel = level; } log(message) { console.log(`[${this.#logLevel}] ${message}`); } } -
Наследование: Возможность создания нового класса (потомка) на основе существующего (родителя).
class EventEmitter { emit(eventName, data) { console.log(`Event '${eventName}' emitted with data:`, data); } } class MyService extends EventEmitter { // Наследование performAction() { this.emit('actionPerformed', { timestamp: Date.now() }); } } -
Полиморфизм: Способность объектов с одинаковым интерфейсом иметь разную реализацию.
class DatabaseConnection { connect() { throw new Error('Method connect() must be implemented'); } } class PostgresConnection extends DatabaseConnection { connect() { console.log('Connecting to PostgreSQL...'); } } class MongoConnection extends DatabaseConnection { connect() { console.log('Connecting to MongoDB...'); } } // Один интерфейс (метод connect), разное поведение const connections = [new PostgresConnection(), new MongoConnection()]; connections.forEach(conn => conn.connect()); -
Абстракция: Моделирование ключевых характеристик сущности, игнорируя нерелевантные детали (достигается через классы и интерфейсы).
В Node.js ООП активно используется для структурирования бизнес-логики, создания сервисов, моделей данных (например, в ORM типа Sequelize или TypeORM) и построения расширяемых архитектур.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶