Titolo peggiore di sempre ma non so come descrivere il mio scenario in una riga ...
Quindi ho un metodo che avvolge le chiamate di molti metodi della stessa natura. Una volta completato uno di questi metodi, è necessario chiamare un determinato aggiornamento.
class SomeClass:
def perform_tasks():
self.task1()
self.task2()
self.task3()
def task1(self):
# perform task 1...
# then update
self.update()
def task2(self):
# perform task 2...
# then update
self.update()
def task3(self):
# perform task 3...
# then update
self.update()
Poiché update
viene chiamato ogni volta in quel modo, posso refactoring queste chiamate:
class SomeClass:
def __init__(self):
self.tasks = [self.task1, self.task2, self.task3)
def perform_tasks():
for task in self.tasks:
task()
self.update()
Forse vale la pena ricordare che SomeClass
può essere ereditato in modo che le attività da eseguire possano parzialmente cambiare.
Tuttavia ora ho bisogno di chiamare alcune singole attività separatamente, e ho ancora bisogno di eseguire l'aggiornamento dopo ognuna di queste attività. Qual è il design che mi consentirà di farlo senza essere ripetitivo nel chiamare update
?