Sobes.tech
Назад к вопросам
Junior — Middle
69

Как добавить функциональность к классу без необходимости изменения его исходного кода?

Компании, где спрашивали
amoCRMamoCRM

Ответ от нейросети

sobes.tech AI

Чтобы добавить функциональность к классу без изменения его исходного кода, в Android (Java/Kotlin) можно использовать несколько подходов:

  • Наследование — создать подкласс и расширить или переопределить нужные методы.

  • Делегирование — создать новый класс, который содержит экземпляр исходного класса и реализует дополнительный функционал, перенаправляя вызовы.

  • Extension функции (в Kotlin) — позволяют добавлять новые методы к существующим классам без наследования и изменения исходного кода.

Пример extension функции в Kotlin:

// Добавляем функцию для класса String
fun String.isEmailValid(): Boolean {
    return this.contains("@") && this.contains(".")
}

// Использование
val email = "test@example.com"
println(email.isEmailValid()) // true

Таким образом, extension функции — удобный способ расширить функциональность классов в Android без изменения их исходного кода.