In Head First Design Patterns insegna al schema di strategia utilizzando un esempio di anatra in cui a sottoclassi diverse di Duck può essere assegnato un comportamento particolare in fase di esecuzione. Dalla mia comprensione, lo scopo del modello di strategia è quello di modificare il comportamento di un singolo oggetto in fase di esecuzione, tuttavia utilizzano l'ereditarietà di Duck per modificare il comportamento di vari tipi di anatra.
Rilevanza?
L'ereditarietàdelcontestodiDuckèirrilevanterispettoalmodellodistrategiaovariaitipidiAnatraeancheilorocomportamentisonounabuonaragioneperutilizzareilmodellodistrategia?Lesituazioniincuiènecessariovariareentrambecostituisconounabuonamotivoperutilizzareilmodellodistrategia?Perchédovrebberoincluderequestocomeesempiodimodellostrategico?
Unesempiopiùsemplice
PotreisemplificareulteriormentequestoesempiosemplicementeavendounaclasseDuck(nessunaclassederivata)?Quindi,quandosiimplementaunoggettoanatra,èpossibileassegnarediversicomportamentiinbaseadeterminatecircostanzechenondipendonodalpropriotipodioggetto.Adesempio:FlyBehaviorcambiainbasealmeteooallemodifichediQuackBehaviorinbaseall'oradelgiornooallafamediun'anatra.Mirendocontocherisolverebbeunproblemadiversodaquellodellibro,maquellochestocercandoèunesempiodistrategiapertinentesucuibasarsi.
Ilmioesempiosopracostituirebbeancheilmodellodistrategia?
Modifica:
Hoavutosuccessoneltrovare2esempidimodellidistrategiapiùsemplicicheaderisconopiùstrettamenteall'esseresolomodellidistrategiasenzaereditarietàdelcontesto: