Sobes.tech
Junior — Middle

Programlamada Dekorator deseni hangi durumlarda ve ne amaçla kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Паттерн Декоратор используется для динамического добавления новых обязанностей объекту без изменения его исходного кода. Это позволяет расширять функциональность объектов гибко и прозрачно для клиента.

Применяется, когда нужно добавить поведение к объекту во время выполнения, избегая создания множества подклассов для каждой комбинации функций.

В Python декоратор часто реализуется через классы или функции, которые оборачивают исходный объект.

Пример паттерна Декоратор на Python:

class Coffee:
    def cost(self):
        return 5

class MilkDecorator:
    def __init__(self, coffee):
        self._coffee = coffee
    def cost(self):
        return self._coffee.cost() + 2

basic_coffee = Coffee()
coffee_with_milk = MilkDecorator(basic_coffee)
print(coffee_with_milk.cost())  # Выведет 7

Здесь MilkDecorator добавляет стоимость молока к базовому кофе, не меняя класс Coffee.