Back to questions
Junior — Middle
82
Можете привести пример реализации структурного паттерна в программировании?
Answer from AI
sobes.tech AI
Один из популярных структурных паттернов — это паттерн "Декоратор". Он позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы.
Пример на Kotlin для Android:
// Интерфейс компонента
interface Coffee {
fun cost(): Double
}
// Конкретный компонент
class SimpleCoffee : Coffee {
override fun cost() = 2.0
}
// Декоратор
open class CoffeeDecorator(private val decoratedCoffee: Coffee) : Coffee {
override fun cost() = decoratedCoffee.cost()
}
// Конкретный декоратор
class MilkDecorator(coffee: Coffee) : CoffeeDecorator(coffee) {
override fun cost() = super.cost() + 0.5
}
// Использование
fun main() {
val simpleCoffee = SimpleCoffee()
val milkCoffee = MilkDecorator(simpleCoffee)
println("Стоимость кофе с молоком: ${milkCoffee.cost()}")
}
Такой подход позволяет гибко расширять функциональность без изменения исходного кода классов.