Продвинутый уровень (14 из 15)

<aside> <img src="/icons/calendar-day_gray.svg" alt="/icons/calendar-day_gray.svg" width="40px" />

13 июня 2026

</aside>

<aside> <img src="/icons/clock-alternate_lightgray.svg" alt="/icons/clock-alternate_lightgray.svg" width="40px" />

20 минут

</aside>

  1. Какой из следующих вариантов наиболее полно и точно отражает концепцию наследования в объектно-ориентированном программировании?

  2. В каком из следующих случаев принцип инкапсуляции применяется корректно и эффективно с точки зрения архитектуры объектно-ориентированной системы?

  3. Среди приведенных вариантов ответа выберите тот, который наиболее точно отражает назначение поведенческих паттернов в объектно-ориентированном программировании.

  4. Какой из принципов SOLID нарушен в данном коде?

    Класс «Прямоугольник»:
        инициализация объекта(высота, ширина):
            объект.высота = высота
            объект.ширина = ширина
    
        задать ширину(ширина):
            объект.ширина = ширина
    
        задать высоту(высота):
            объект.высота = высота
    
    Класс «Квадрат» («Прямоугольник»):
        инициализация объекта(размер):
            объект(Прямоугольник).высота = размер
            объект(Прямоугольник).ширина = размер
    
        задать ширину(ширина):
            объект(Прямоугольник).высота = ширина
            объект(Прямоугольник).ширина = ширина
    
  5. Какой модификатор доступа следует использовать, чтобы обеспечить доступность полей и методов класса из самого класса, из производного класса и из других классов в той же сборке, но не из других сборок?

  6. Какое из следующих утверждений наиболее точно отражает принципы работы с абстрактными классами и методами в объектно-ориентированном программировании, учитывая их роль в создании иерархий классов и реализации полиморфизма?

  7. Вы разрабатываете систему управления персоналом, в которой важно отслеживать общее количество сотрудников в реальном времени. Данные об объектах сотрудников реализуются через класс Employee, отвечающий за информацию об отдельном человеке. Ваша задача – реализовать подсчёт общего количества сотрудников без нарушения принципов инкапсуляции и единственной ответственности. Какой подход будет наилучшим?

  8. Вы разрабатываете модуль для управления уведомлениями. Уведомления могут отправляться по электронной почте, в SMS или в push-формате. У всех уведомлений должен быть метод отправить(). Некоторые типы уведомлений (например, email) поддерживают вложения.

    Как следует организовать классы, чтобы соблюсти принципы наследования, масштабируемости и минимальной связанности?

  9. Какой из следующих подходов лучше всего иллюстрирует применение полиморфизма при реализации различных типов аутентификации пользователей в веб-приложении?

  10. Какие факторы могут привести к ухудшению связанности кода в объектно-ориентированном программировании?

  11. Какое из следующих утверждений наиболее точно описывает различия между сериализацией и десериализацией объектов в ООП?

  12. Какая из следующих особенностей характерна для объектно-ориентированных языков программирования, таких как Python, Java, C#, JavaScript и PHP?

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

    – Объекты системы взаимодействуют через общий интерфейс;

    – Действие метода выполнить() вызывается одинаково у всех объектов;

    – Внутри каждой реализации детали выполнения скрыты и не раскрываются внешнему коду.

  14. Какое из следующих описаний наиболее точно и всесторонне отражает сущность объектно-ориентированного программирования (ООП), учитывая его ключевые принципы и влияние на проектирование сложных программных систем?

  15. Какое из следующих утверждений наиболее точно описывает ключевые особенности объектно-ориентированных баз данных (ООБД) и их преимущества по сравнению с реляционными базами данных?