Sobes.tech
Middle

Čo je to dekorátor?

sobes.tech AI

Odpoveď od AI

Dekorátor je vzor návrhu, ktorý umožňuje dynamicky pridávať nové správanie objektu bez zmeny jeho štruktúry.

Hlavné vlastnosti:

  • Flexibilita: Umožňuje pridávať alebo odstraňovať funkcie objektov počas behu.
  • Nezávislosť: Nové funkcie môžu byť pridané nezávisle od hlavnej triedy.
  • Použitie kompozície: Dekorátor obsahuje odkaz na dekorovaný objekt a presmerováva požiadavky naň, pridávajúc logiku pred alebo po vykonaní.

Použitie:

  • Logovanie
  • Kontrola prístupu (autentifikácia/autorizácia)
  • Pridanie metadát
  • Zmena správania metód

Príklad v Pythone:

# Jednoduchá funkcia na dekorovanie
def my_function():
    return "Hello"

# Dekorátor
def simple_decorator(func):
    def wrapper():
        print("Pred volaním funkcie")
        result = func()
        print("Po volaní funkcie")
        return result
    return wrapper

# Použitie dekorátora
@simple_decorator
def decorated_function():
    return "World"

# Volanie dekorovanej funkcie
# decorated_function() vypíše:
# Pred volaním funkcie
# Po volaní funkcie
# a vráti "World"