Как создать собственную очередь задач с приоритетами структура данных: приоритетная очередь (priority queue) хранение задач, каждой из которых назначено числовое значение приоритета (чем меньше число, тем выше…
Множественное наследование: порядок разрешения методов (MRO) применяется в объектно-ориентированном программировании MRO определяет последовательность поиска методов и атрибутов при наличии нескольких родителей…
Подходы к переиспользованию методов одного класса в другом Наследование: производный класс получает публичные и защищённые методы родителя, а затем может расширять или переопределять их поведение. Композиция: один…
базовый подход к объектно-ориентированному проектированию название пяти принципов: S (Single Responsibility) — у класса должна быть только одна ответственность O (Open/Closed) — класс открыт для расширения, но закрыт…
Основные рекомендации по переопределению equals и hashCode для entity Методы equals и hashCode обязаны соответствовать общему контракту: если equals возвращает true, значения hashCode должны совпадать сравнивать…
Как правильно сделать класс иммутабельным? не использовать сеттеры и методы, изменяющие состояние объявить все поля как final или константы выполнять инициализацию полей только в конструкторе клонировать ссылки на…
Как принципы SOLID реализуются в архитектуре FSD? FSD (Feature-Sliced Design) — фронтенд-архитектура, в которой код организован вокруг отдельных фич SOLID — совокупность принципов, направленных на создание гибкого и…
это объектно-ориентированный механизм, который обеспечивает повторное использование кода производные классы могут наследовать атрибуты и методы базового класса поддерживается множественное наследование — достаточно…
Паттерн "Стратегия" поведенческий шаблон проектирования помещает алгоритмы в отдельные классы позволяет динамически менять алгоритм во время выполнения контекст взаимодействует с интерфейсом стратегии и не связан с…
Паттерн Наблюдатель (Observer) поведенческий шаблон проектирования субъект сообщает подписанным наблюдателям об изменении своего состояния слабая связанность: наблюдатели не зависят напрямую от субъекта субъект…
Как устроено прототипное наследование в JavaScript В JavaScript применяется прототипная модель наследования, а не классическая У каждого объекта есть скрытая ссылка на прототип — другой объект Когда запрашивается…
механизм динамического исследования и управления типами даёт возможность получать метаданные сборок, типов, методов и свойств позволяет обращаться к структуре программы во время выполнения даёт возможность динамически…