Pattern Template Method

di il
3 risposte

Pattern Template Method

Ciao a tutti ! Avrei bisogno di un esempio chiaro sul pattern Template Method...la teoria l'ho letta,e va bene, ma sono cose molto raffinate che senza un esempio pratico si fa fatica a capirne la vera utilità, perchè da quanto ci ho capito io, non capisco cosa faccia in più di un override...

3 Risposte

  • Re: Pattern Template Method

    SsaLaroLana ha scritto:


    Ciao a tutti ! Avrei bisogno di un esempio chiaro sul pattern Template Method...la teoria l'ho letta,e va bene, ma sono cose molto raffinate che senza un esempio pratico si fa fatica a capirne la vera utilità, perchè da quanto ci ho capito io, non capisco cosa faccia in più di un override...
    Molti pattern si basano sulla ereditarietà e sull'override. Quindi il punto non è, come dici tu, "ma fa solo un override" .... no, devi cercare di vedere il concetto, la filosofia in generale.

    Il pattern Template si usa quando si ha un "algoritmo", inteso in generale come una sequenza di "passi" da eseguire e in cui alcuni di questi passi devono o possono essere specializzati.
    L'algoritmo in generale è quindi in una classe base (astratta se ci sono metodi astratti che appunto devono essere ridefiniti) e ciascuna sottoclasse deve/può specializzare i passi secondo cosa rappresenta "in più" la sottoclasse rispetto alla classe base.
  • Re: Pattern Template Method

    Okei chiaro...bè quindi mettiamo per esempio che la superclasse sia astratta e definisca un algoritmo di ordinamento già implementato come metodo astratto, una sottoclasse dovrebbe, secondo il pattern strategy, fare override di tale metodo e "specializzarlo" in base alle esigenze...insomma questo pattern rafforza il concetto di polimorfismo, raffinando l'override??? Grazie per la risposta comunque!
  • Re: Pattern Template Method

    SsaLaroLana ha scritto:


    secondo il pattern strategy
    Il pattern strategy è ancora un'altra cosa, a livello concettuale. Serve per definire una "famiglia" di algoritmi che sono interscambiabili tra di loro perché hanno tutti la stessa "interfaccia" (in senso astratto/generale, non solo necessariamente di interface Java).

    Anche nel pattern strategy si usa l'ereditarietà e l'applicazione del override e quindi potresti chiederti quale è la differenza. La differenza sta sempre a livello concettuale.
    Nel pattern template una sottoclasse specifica può ridefinire solo uno o più (magari pochi) passi dell'algoritmo mentre nel pattern strategy ogni sottoclasse specifica è un intero algoritmo.
Devi accedere o registrarti per scrivere nel forum
3 risposte