Какой опыт применения принципов ООП

«Какой опыт применения принципов ООП» — вопрос из категории Паттерны, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Применяю принципы ООП в React и TypeScript. Основные принципы:

  1. Инкапсуляция - скрытие деталей реализации:
class Counter {
  private count = 0;

  increment() {
    this.count++;
  }

  getCount() {
    return this.count;
  }
}
  1. Наследование - через классовые компоненты (хотя сейчас предпочитаю композицию):
class BaseComponent extends React.Component {
  commonMethod() { /* ... */ }
}
  1. Полиморфизм - через интерфейсы в TypeScript:
interface Renderable {
  render(): JSX.Element;
}

class Button implements Renderable {
  render() { return <button>Click</button>; }
}
  1. Абстракция - выделяю общие интерфейсы для похожих сущностей.

На практике чаще использую композицию вместо наследования, особенно с хуками React. ООП помогает структурировать сложную бизнес-логику.