разные подходы: композиция объектов и иерархия типов встраивание добавляет объект в структуру и использует делегирование наследование расширяет базовый класс и позволяет переопределять его поведение embedding не…
ограничение GIL (Global Interpreter Lock) в CPython GIL не позволяет нескольким потокам одновременно выполнять байт-код и гарантирует безопасный доступ к объектам без сложных механизмов синхронизации из-за этого…
Наследование и композиция: что обеспечивает большую гибкость кода? наследование: тесная связь и фиксированная иерархия композиция: гибкое объединение объектов из отдельных компонентов наследование трудно изменять…
Чем sealed-классы отличаются от enum и как работают их конструкторы? sealed-классы задают тип с ограниченным набором подклассов и обеспечивают контроль иерархии enum представляет специализированный класс с…
Базовое понятие: struct и class как пользовательские типы Значения по умолчанию: у struct всё public, у class — private Оба типа поддерживают методы, инкапсуляцию и наследование Главное различие семантическое: class…
Разница между интерфейсом и абстрактным классом ООП, абстракция и наследование Интерфейс содержит только объявления методов: методов с телом нет, а все методы по умолчанию являются публичными и абстрактными…
Ключевые различия структур и классов структуры относятся к типам значений (value type), а классы — к ссылочным типам (reference type) структура содержит данные непосредственно, тогда как объект класса размещается в…
Фабричный метод и Builder: ключевые различия Оба паттерна относятся к созданию объектов, однако предназначены для разных задач Фабричный метод передаёт создание объектов подклассам Для определения конкретного класса…
один из принципов ООП и SOLID объекты подклассов должны быть заменяемы объектами базовых классов без нарушения логики объекты производного класса должны без изменения поведения программы заменять экземпляры базового…
Что означают @Override и перегрузка методов (Overloading) и с каким принципом OOP они связаны? контекст: Java, методы, OOP @Override обозначает метод, переопределяющий реализацию суперкласса переопределение реализует…
Что представляет собой Bean? понятие из экосистем Java EE и Spring объект, жизненным циклом которого управляет контейнер IoC создаётся и настраивается фреймворком (Spring Container) проходит этапы жизненного цикла:…