Ответ
- Наследование – создание подкласса, который расширяет функциональность родительского класса.
class CustomTextView : TextView() {
fun setCustomText(text: String) { ... }
}
- Расширения (Extensions) – добавление методов без наследования.
fun TextView.setCustomText(text: String) { ... }
// Использование: textView.setCustomText("Hello")
- Декоратор (Decorator Pattern) – обёртка вокруг класса с добавлением новой логики.
class CustomTextDecorator(private val textView: TextView) {
fun setCustomText(text: String) { ... }
}
-
Рефлексия – динамическое добавление методов (не рекомендуется из-за производительности и безопасности).
-
Аспектно-ориентированное программирование (AOP) – через инструменты вроде AspectJ (редко используется в Android).
Для Android чаще всего применяют Extensions (Kotlin) или наследование, если требуется глубокая модификация поведения.