Sobes.tech
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()}")
}

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