Junior — Middle
Hoe kan je een uitbreiding van functionaliteit implementeren zonder de originele functie te wijzigen?
sobes.tech AI
Antwoord van AI
Для расширения функциональности без изменения исходной функции можно использовать несколько подходов:
- Декоратор (Decorator) — оборачиваем исходную функцию или объект в дополнительный слой, который добавляет новую логику.
- Наследование и переопределение — создаём подкласс и переопределяем метод, добавляя новый функционал.
- Использование паттерна "Стратегия" — передаём новую реализацию поведения через интерфейс.
- В Kotlin (Android) — расширения (extension functions) — позволяют добавить новые функции к существующим классам без изменения их исходного кода.
Пример расширения функции в Kotlin:
fun String.addExclamation(): String {
return this + "!"
}
val greeting = "Hello"
println(greeting.addExclamation()) // Выведет: Hello!
Таким образом, расширение функциональности достигается без модификации исходной функции, что улучшает поддержку и масштабируемость кода.