Sobes.tech
Junior — Middle

Коддо декоратор паттернин колдонуу мисалын бере аласызбы?

sobes.tech AI

AIден жооп

Декоратор үлгүсү объекттерге динамикалык түрдө жаңы жоопкерчиликтер кошууга мүмкүндүк берет, алардын башка декоратор объекттерине оролушу аркылуу.

Python мисалында: метод чакыруусун каттоо үчүн декоратор кошобуз:

class Component:
    def operation(self):
        return "Негизги операция"

class Decorator:
    def __init__(self, component):
        self._component = component

    def operation(self):
        result = self._component.operation()
        return result

class LoggingDecorator(Decorator):
    def operation(self):
        print("Лог: операция чакырылды")
        result = self._component.operation()
        print("Лог: операция аяктады")
        return result

# Колдонуусу
component = Component()
decorated = LoggingDecorator(component)
print(decorated.operation())

Чыгуу:

Лог: операция чакырылды
Лог: операция аяктады
Негизги операция

Ошентип, биз Component объектисин LoggingDecorator менен ороп, лог жазуу функциясын коштүк, баштапкы классты өзгөртпөстөн.