Command pattern: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
ValterVBot (discussione | contributi)
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.
 
<sourcesyntaxhighlight lang=python>
class RoomHandler:
...
</syntaxhighlight>
</source>
 
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.
 
<sourcesyntaxhighlight lang=python>
class Painter(RoomHandler)
...
Riga 39:
def actionWork(self, arguments):
""" mount shelves to some walls """
</syntaxhighlight>
</source>
 
Questo approccio presenta diversi aspetti negativi.
Riga 49:
Segue il codice equivalente strutturato seguendo le indicazioni del pattern:
 
<sourcesyntaxhighlight lang=python>
class Command:
 
Riga 69:
def execute(self, wall):
""" mount shelf to a wall """
</syntaxhighlight>
</source>
 
Sia nell'atto di creazione di un'istanza ''RoomHandler'', sia a ''run-time'', è possibile selezionare le azioni che si intende svolgere:
 
<sourcesyntaxhighlight lang=python>
def createRoomHandler(self):
handler = RoomHandler()
Riga 84:
for work in self.getWorks():
work.execute(self.getSelectedWall())
</syntaxhighlight>
</source>
 
== Considerazioni ==