[ruby-it] GOF Patterns in Ruby

Massimiliano Mirra rubyitlist a hyperstruct.net
Ven 2 Feb 2007 23:51:48 CET


On 2/2/07, Paolo Donā <paolo.dona a seesaw.it> wrote:
> Riusciamo a portare qualche esempio pratico di utilizzo dei pattern? Ovvero
> riusciamo a dimostrare quando il pattern ha risolto un problema in un
> dominio specifico?

Mi sono trovato a mettere codice che gestisce comunicazioni di rete (o
altre comunicazioni asincrone) in una certa forma ricorrente.  Una
forma ricorrente č un pattern, ma non so se questa abbia un nome...

Esempio: invio un comando all'altro lato della connessione, e quando
arriva la risposta reagisco in qualche modo (es. mostro un requester).
 Il programma nel frattempo non deve congelarsi.  Di solito si
avrebbero tutti i gestori di input remoto in un unico luogo, attivati
da un evento basato sulla categoria dell'input.  A me servivano
gestori one-shot e serviva vederli in modo lineare.  Pseudocodice:

sendCommand(
    "foo", proc { |answer|
        display(answer)
    })

E la definizione di sendCommand:

def sendCommand(command, reaction)
    reactionWrapper = proc {
        reaction()
        networkLayer.unregisterHandler('on' + command, reaction)
    }

    networkLayer.registerHandler('on' + command, reactionWrapper)
    networkLayer.send(command)
end


My .02ptrn.



-- 
Massimiliano Mirra
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net


Maggiori informazioni sulla lista Ml