Sobes.tech
Middle

Wat is een decorator?

sobes.tech AI

Antwoord van AI

De decorator is een ontwerppatroon dat het mogelijk maakt om dynamisch nieuw gedrag aan een object toe te voegen zonder de structuur ervan te wijzigen.

Belangrijkste kenmerken:

  • Flexibiliteit: Maakt het mogelijk om functionaliteit van objecten tijdens runtime toe te voegen of te verwijderen.
  • Onafhankelijkheid: Nieuwe functionaliteit kan onafhankelijk van de hoofdklasse worden toegevoegd.
  • Gebruik van compositie: De decorator bevat een verwijzing naar het gedecoreerde object en stuurt verzoeken door, waarbij logica vóór of na de uitvoering wordt toegevoegd.

Toepassingen:

  • Logging
  • Toegangscontrole (authenticatie/autorisatie)
  • Metadata toevoegen
  • Gedrag van methoden wijzigen

Voorbeeld in Python:

# Eenvoudige functie voor decoratie
def my_function():
    return "Hello"

# Decorator
def simple_decorator(func):
    def wrapper():
        print("Voor de functie wordt aangeroepen")
        result = func()
        print("Na de functieaanroep")
        return result
    return wrapper

# Toepassing van de decorator
@simple_decorator
def decorated_function():
    return "World"

# Aanroep van de gedecoreerde functie
# decorated_function() zou output geven:
# Voor de functie wordt aangeroepen
# Na de functieaanroep
# en retourneert "World"