<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>
Какой из следующих вариантов наиболее полно и точно отражает концепцию наследования в объектно-ориентированном программировании?
В каком из следующих случаев принцип инкапсуляции применяется корректно и эффективно с точки зрения архитектуры объектно-ориентированной системы?
Account предоставляет публичные методы withdraw() и deposit(), а доступ к балансу осуществляется исключительно внутри этих методов, без прямого изменения извнеLogger реализует статические методы логирования, доступные из любого места программы без создания экземпляраUserProfile хранит поля email и password как private, а доступ к ним осуществляется через открытые геттеры и сеттеры, которые напрямую возвращают и изменяют значенияVehicle все поля private, но для каждого из них создан отдельный публичный геттер и сеттер без какой-либо проверки или ограниченияUser имеет private поле email и публичный геттер отдаёт значение по ссылкеСреди приведенных вариантов ответа выберите тот, который наиболее точно отражает назначение поведенческих паттернов в объектно-ориентированном программировании.
Какой из принципов SOLID нарушен в данном коде?
Класс «Прямоугольник»:
инициализация объекта(высота, ширина):
объект.высота = высота
объект.ширина = ширина
задать ширину(ширина):
объект.ширина = ширина
задать высоту(высота):
объект.высота = высота
Класс «Квадрат» («Прямоугольник»):
инициализация объекта(размер):
объект(Прямоугольник).высота = размер
объект(Прямоугольник).ширина = размер
задать ширину(ширина):
объект(Прямоугольник).высота = ширина
объект(Прямоугольник).ширина = ширина
Какой модификатор доступа следует использовать, чтобы обеспечить доступность полей и методов класса из самого класса, из производного класса и из других классов в той же сборке, но не из других сборок?
Какое из следующих утверждений наиболее точно отражает принципы работы с абстрактными классами и методами в объектно-ориентированном программировании, учитывая их роль в создании иерархий классов и реализации полиморфизма?
Вы разрабатываете систему управления персоналом, в которой важно отслеживать общее количество сотрудников в реальном времени. Данные об объектах сотрудников реализуются через класс Employee, отвечающий за информацию об отдельном человеке. Ваша задача – реализовать подсчёт общего количества сотрудников без нарушения принципов инкапсуляции и единственной ответственности. Какой подход будет наилучшим?
EmployeeRegistry, который управляет созданием и хранением всех сотрудниковHRManager, который добавляет сотрудников в системуEmployee, но обращаться к ней только через внешний модуль учётаEmployee статическое поле и метод для ведения общего счёта сотрудниковВы разрабатываете модуль для управления уведомлениями. Уведомления могут отправляться по электронной почте, в SMS или в push-формате. У всех уведомлений должен быть метод отправить(). Некоторые типы уведомлений (например, email) поддерживают вложения.
Как следует организовать классы, чтобы соблюсти принципы наследования, масштабируемости и минимальной связанности?
Notifiable с методом отправить() и дополнительный интерфейс Attachable, который реализуют только те классы, где поддерживаются вложенияNotification, включающий методы отправить() и прикрепить_файл(), даже если вложения нужны не для всех форматовNotificationHandler, переключаясь между типами уведомлений по флагуNotifiable с методами отправить() и прикрепить_файл(), и все классы должны реализовать оба методаEmailNotification с полной реализацией и от него унаследовать SmsNotification и PushNotificationКакой из следующих подходов лучше всего иллюстрирует применение полиморфизма при реализации различных типов аутентификации пользователей в веб-приложении?
Authenticator с методом authenticate(), который реализуется в классах PasswordAuthenticator, OAuthAuthenticator и BiometricAuthenticator для разных способов аутентификацииAuthenticationHandler, который хранит логику для всех типов аутентификации в одном методеUserAuthentication с методами для проверки пароля и токенов OAuth, но без расширяемости для других типов аутентификации, что сохраняет безопасность проведения аутентификации для пользователяUserAuthenticator, который содержит все возможные методы аутентификации, без разделения на конкретные классы и объектыauthenticate() отдельно в каждом классе, но без использования общего интерфейса или абстрактного классаКакие факторы могут привести к ухудшению связанности кода в объектно-ориентированном программировании?
Какое из следующих утверждений наиболее точно описывает различия между сериализацией и десериализацией объектов в ООП?
Какая из следующих особенностей характерна для объектно-ориентированных языков программирования, таких как Python, Java, C#, JavaScript и PHP?
Ниже представлены фрагменты архитектуры программы, использующей объектно-ориентированное проектирование. Выберите пару понятий, которая наиболее точно отражает роли двух ключевых принципов ООП в следующем описании:
– Объекты системы взаимодействуют через общий интерфейс;
– Действие метода выполнить() вызывается одинаково у всех объектов;
– Внутри каждой реализации детали выполнения скрыты и не раскрываются внешнему коду.
Какое из следующих описаний наиболее точно и всесторонне отражает сущность объектно-ориентированного программирования (ООП), учитывая его ключевые принципы и влияние на проектирование сложных программных систем?
Какое из следующих утверждений наиболее точно описывает ключевые особенности объектно-ориентированных баз данных (ООБД) и их преимущества по сравнению с реляционными базами данных?