Command pattern: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m nessuna indicazione della categoria/galleria Commons quando è presente la proprietà P373 |
m →Esempio: tag source deprecati, replaced: <source lang= → <syntaxhighlight lang= (4), </source> → </syntaxhighlight> (4) |
||
Riga 11:
== Esempio ==
In un modulo (python) è definita la classe che segue.
<
class RoomHandler:
...
</syntaxhighlight>
Questa è destinata ad occuparsi della gestione delle camere di una casa nonché, attualmente, allo svolgimento di alcuni lavori da eseguire.
Riga 22:
Sono infatti definite alcune sottoclassi che implementano diversi lavori che è possibile svolgere sulle pareti delle camere.
<
class Painter(RoomHandler)
...
Riga 39:
def actionWork(self, arguments):
""" mount shelves to some walls """
</syntaxhighlight>
Questo approccio presenta diversi aspetti negativi.
Riga 49:
Segue il codice equivalente strutturato seguendo le indicazioni del pattern:
<
class Command:
Riga 69:
def execute(self, wall):
""" mount shelf to a wall """
</syntaxhighlight>
Sia nell'atto di creazione di un'istanza ''RoomHandler'', sia a ''run-time'', è possibile selezionare le azioni che si intende svolgere:
<
def createRoomHandler(self):
handler = RoomHandler()
Riga 84:
for work in self.getWorks():
work.execute(self.getSelectedWall())
</syntaxhighlight>
== Considerazioni ==
|