Junior — Middle
¿Cómo se puede implementar una extensión de funcionalidad sin modificar la función original?
sobes.tech AI
Respuesta de la IA
Для расширения функциональности без изменения исходной функции можно использовать несколько подходов:
- Декоратор (Decorator) — оборачиваем исходную функцию или объект в дополнительный слой, который добавляет новую логику.
- Наследование и переопределение — создаём подкласс и переопределяем метод, добавляя новый функционал.
- Использование паттерна "Стратегия" — передаём новую реализацию поведения через интерфейс.
- В Kotlin (Android) — расширения (extension functions) — позволяют добавить новые функции к существующим классам без изменения их исходного кода.
Пример расширения функции в Kotlin:
fun String.addExclamation(): String {
return this + "!"
}
val greeting = "Hello"
println(greeting.addExclamation()) // Выведет: Hello!
Таким образом, расширение функциональности достигается без модификации исходной функции, что улучшает поддержку и масштабируемость кода.