Ключевые различия абстрактного класса и интерфейса ООП, наследование и контракт Абстрактный класс представляет собой тип с частичной реализацией Интерфейс задает полный контракт без реализации В абстрактном классе…
В чём init() отличается от new()? new — создаёт экземпляр класса и вызывается первым init — инициализирует уже созданный объект new — статический метод, который возвращает новый экземпляр init — обычный метод,…
Объектно-ориентированное программирование, связи объектов Агрегация — менее тесная связь: составная часть способна существовать самостоятельно Композиция — тесная связь: существование части определяется жизненным…
объектно-ориентированное программирование Интерфейс определяет контракт — набор методов без реализации Абстрактный класс способен хранить состояние и содержать реализованные методы Класс может реализовать несколько…
позднее статическое связывание представляет собой отложенное до компиляции разрешение вызова функции с учётом конкретного статического типа. Его применяют в шаблонах и для оптимизации полиморфизма времени компиляции.
основа прототипного наследования в JS объект, предоставляющий наследуемые свойства и методы помогает повторно использовать код формирует цепочки наследования (prototype chain) экономит память, позволяя экземплярам…
шаблон для множественного наследования объединяют свойства и методы нескольких классов позволяют обойти ограничение единственного extends помогают повторно использовать функциональность делают архитектуру более гибкой…
В Go нет классов: для представления данных применяются структуры Поведение инкапсулируется с помощью методов, связанных с типами структур Интерфейсы задают набор методов, которые могут реализовывать типы, обеспечивая…
Как устранить конфликт имён методов при использовании нескольких трейтов? Контекст: работа с Rust / трейты Проблема появляется, когда разные трейты содержат методы с одинаковыми именами Для решения при вызове…
Как связаны переменные, ссылки и объекты в Python Python использует динамическую типизацию, а управление объектами в памяти основано на ссылках. Переменная представляет собой имя-ссылку на объект в памяти, а не…
Принципы SOLID: SRP, OCP, LSP, ISP и DIP с практическими примерами SOLID — пять принципов, которые помогают проектировать качественный объектно-ориентированный код SRP (Single Responsibility Principle): у класса…
Варианты переноса тяжёлых вычислений из основного потока Web Workers (браузер): запускают JavaScript в отдельном потоке, поэтому UI не блокируется. setTimeout/setImmediate: позволяют разделить задачу на небольшие…