Назад к вопросам
Junior — Middle
81
Можешь привести пример, как реализовать принцип открытости/закрытости из принципов SOLID в практике разработки?
Компании, где спрашивали
Dogma
Ответ от нейросети
sobes.tech AI
Принцип открытости/закрытости (Open/Closed Principle) говорит, что программные сущности должны быть открыты для расширения, но закрыты для модификации.
В Android-разработке это можно реализовать, например, через использование абстракций и наследования. Вместо изменения существующего класса, создаём новый класс, расширяющий функциональность.
Пример:
// Базовый интерфейс
interface NotificationSender {
fun send(message: String)
}
// Реализация для отправки по Email
class EmailSender : NotificationSender {
override fun send(message: String) {
// логика отправки email
}
}
// Позже нужно добавить отправку SMS, не меняем EmailSender, а добавляем новый класс
class SmsSender : NotificationSender {
override fun send(message: String) {
// логика отправки SMS
}
}
// Использование
fun notifyUser(sender: NotificationSender, message: String) {
sender.send(message)
}
Таким образом, если нужно добавить новый способ отправки уведомлений, мы расширяем систему, создавая новые классы, не меняя существующий код.