Pattern Strategy

di il
1 risposte

Pattern Strategy

Ciao a tutti!!! Ho un dilemma...purtroppo sono fermo da stamattina su un esercizio, nel quale mi viene richiesto di utilizzare il pattern Strategy per risolvere il problema... Ho letto, e concettualmente piu o meno ci sono...lo stesso metodo che fa cose diverse...la stessa classe che fa cose diverse...ecc...ecc...ma...ho le idee parecchio confuse, l'esercizio riguarda dei conticorrente, e devo gestire con una classe "ContoCorrenteImpl" , altre due classi "ContoCorrenteA" e "ContoCorrenteB"...le classi A e B sono pressochè uguali e implementano la stessa interfaccia(ContoCorrente), differiscono solo in due metodi : "prelievo()" e "cambioAnno()", in cui nel "ContoCorrenteA" vengono applicati certi costi per il prelievo, mentre per "ContoCorrenteB" altri costi ancora...Mi viene chiesto di fare in modo che "ContoCorrenteImpl" permetta di fare ciò che fanno "ContoCorrenteA" e "ContoCorrenteB", e di utilizzare appunto per risolvere il problema il pattern Strategy, facendo in modo di passare al costruttore della classe "ContoCorrenteImpl" un oggetto contente le strategie(che riguardano appunto i metodi "prelievo()" e "cambioAnno()"...Detto questo, non ho idea di come procedere...sarei MOLTO grato se qualcuno di buon cuore mi desse qualche dritta e magari una delucidazione su questo pattern...Grazie...

1 Risposte

  • Re: Pattern Strategy

    SsaLaroLana ha scritto:


    Ho letto, e concettualmente piu o meno ci sono...lo stesso metodo che fa cose diverse...la stessa classe che fa cose diverse...ecc...ecc...ma...ho le idee parecchio confuse
    Per come l'hai appena detto sì, sembrerebbero confuse.

    Il pattern Strategy permette di creare una "famiglia" di algoritmi, ciascuno incapsulato in un tipo (oggetto), facilmente interscambiabili a runtime.
    Un "client" (nel senso generale di chi usa) può quindi usare indifferentemente uno qualunque degli algoritmi che può essere scelto dal client stesso o può essergli assegnato da qualcun'altro.

    Tutto questo è fatto tipicamente basandosi su una interfaccia e su N classi che implementano quella interfaccia per definire i vari "algoritmi" (comportamenti in generale).

    SsaLaroLana ha scritto:


    l'esercizio riguarda dei conticorrente, e devo gestire con una classe "ContoCorrenteImpl" , altre due classi "ContoCorrenteA" e "ContoCorrenteB"...le classi A e B sono pressochè uguali e implementano la stessa interfaccia(ContoCorrente), differiscono solo in due metodi : "prelievo()" e "cambioAnno()", in cui nel "ContoCorrenteA" vengono applicati certi costi per il prelievo, mentre per "ContoCorrenteB" altri costi ancora...Mi viene chiesto di fare in modo che "ContoCorrenteImpl" permetta di fare ciò che fanno "ContoCorrenteA" e "ContoCorrenteB", e di utilizzare appunto per risolvere il problema il pattern Strategy, facendo in modo di passare al costruttore della classe "ContoCorrenteImpl" un oggetto contente le strategie(che riguardano appunto i metodi "prelievo()" e "cambioAnno()"...Detto questo, non ho idea di come procedere...sarei MOLTO grato se qualcuno di buon cuore mi desse qualche dritta e magari una delucidazione su questo pattern...Grazie...
    Per come hai spiegato, io ho capito che:
    - ContoCorrenteImpl è il "client" che usa la "strategia" di ContoCorrente
    - ContoCorrente è la interfaccia che rappresenta a livello astratto la "strategia"
    - ContoCorrenteA/ContoCorrenteB sono le implementazioni concrete della strategia

    Quindi se è così, quale è il dubbio preciso?
Devi accedere o registrarti per scrivere nel forum
1 risposte