Command pattern: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Arialdo (discussione | contributi)
Nessun oggetto della modifica
Etichette: Modifica da mobile Modifica da web per mobile Modifica da mobile avanzata
m Altri progetti: Aggiunto il parametro "Preposizione" nel template "Interprogetto"
 
(4 versioni intermedie di 3 utenti non mostrate)
Riga 18:
</syntaxhighlight>
 
Questa è destinata ada occuparsi della gestione delle camere di una casa nonché, attualmente, allo svolgimento di alcuni lavori da eseguire.
 
Sono infatti definite alcune sottoclassi che implementano diversi lavori che è possibile svolgere sulle pareti delle camere.
Riga 43:
Questo approccio presenta diversi aspetti negativi.
 
# A fronte di ''n'' possibili lavori (azioni) si rendono necessarie diverse sottoclassi: una per ciascuna azione da implementare ede una per ogni possibile composizione di azioni base (adper esempio dipingere camera e montare di seguito gli scaffali). Qualora invece le azioni fossero ''Command'' indipendenti dal RoomHandler, sarebbe possibile creare istanze su quest'ultimo piuttosto che creare sottoclassi.
# ''RoomHandler'' contiene sia il codice di gestione delle camere che il codice che esegue le azioni: esso è sovraccarico di responsabilità ed estendere un'azione comporta un aumento della complessità del ''RoomHandler''.
# Testare oggetti con numerose responsabilità è in genere complesso ede oneroso. Incapsulare le azioni in ''Command'' rende possibile il testing esclusivo su ciascuna azione (eventualmente ricorrendo all'uso di [[Mock Objects|Mock]]) il che semplifica notevolmente la fase di testing e validazione.
 
Segue il codice equivalente strutturato seguendo le indicazioni del pattern:
Riga 98:
 
== Altri progetti ==
{{interprogetto|preposizione=sul}}
 
{{Design Patterns patternspattern}}
{{Portale|informatica}}
 
[[Categoria:PatternDesign pattern]]