Newsgroup: it.scienza.informatica
Titolo: Info su delegation

Sto cercando informazioni sulla delegation, qualche idea
su dove cercare?
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

Salve
sarebbe carino tu dicessi cosa e', una marca di birra? di patatine?
provato Altavista?
Hasta la vista
Yuri

provato Altavista?
anche con lycos ed altri, ma ottengo solo spazzatura... :(
Ciao,


 sue potenzialita` in un linguaggio che lo supporti in modo nativo.
Io ho questo concetto di delegation, dimmi/ditemi se c'intendiamo:
Un oggetto fornisce una funzionalità (un metodo), ma per realizzarla
realmente si appoggia (del tutto o anche solo in parte) ad altri oggetti
che quindi agiscono "per delega". Il bello è che l'oggetto cui chiedere
il servizio può essere scelto a run-time.
 Questo torna utile, ad esempio, quando possono esserci più oggetti in
grado di risolvere una serie di problemi, ma è difficile o non si
vuole/può stabilire a priori quale sia il più indicato; allora si
sceglie a run-time o li si interpella uno per uno con il problema e chi
lo sa risolvere lo segnala (in qualche modo).
E' il meccanismo di base del pattern Proxy ed è molto utile anche in
Composite. Per info vedi la ML IDPSG (Italia Design Pattern Study Group
http://www.egroups.com/group/idpsg/
 ) o
http://industriallogic.com/patterns/
 (da cui raggiungi anche una
Patterns Home Page)
Tre esempi per chiarire:
1. (Proxy) Una classe ContentHandler fornisce dei metodi standard (una
interfaccia, con ad ex getTitle()) per accedere al contenuto di un
documento/risultato/DB indipendentemente dal formato, poi per ogni
formato che si vuole leggere si scrive una classe che implmenta quei
metodi (cioè una certa interfaccia).
 Con la sola ereditarietà questa classe dovrebbe essere una sottoclasse
della prima. In Java è però possibile caricare dinamicamente una classe
(magari in base all'estensione del file passato) e delegare ad essa
l'esecuzione della funzionalità (chiamando ad ex il suo getTitle()).
Questa è flessibilità.
2. Una classe figura F fornisce paint() e può essere formata da una o
più altre figure o disegni elementari (ad ex cerchio, rett...). Quando
invoco la paint() della figura F essa invoca la paint() di tutte le
figure e disegni che contiene DIRETTAMENTE (se contiene figure, diventa
un processo ricorsivo). Quindi DELEGA il compito di creare il disegno ai
disegni elementari contenuti.
3. Un oggetto si può registrare per un certo evento presso l'oggetto che
produce l'evento. Quando l'evento avviene la fonte può a) interpellare
comunque tutti gli ascoltatori; b) un ascoltatore per volta fino al
verificarsi di una condizione (ad ex ritorno con true = ho gestito
l'evento non lo propagare più).
(Qualcosa di simile è usato nell'AWT di java.)
Ciao
Roberto
-------
Collabora alla creazione di un mondo migliore. Se ne sei capace.
Work for a better world. If you have skills to.
Trabaja para crear un mundo mejor. Si eres capaz de hacerlo.

Ciao Paolo,
    in java c'e' qualcosa di simile e su Programmazione.it se ne parla ma
non dal punto di vista che credi interessi a te.
Prova a guardare se su
http://search.java.sun.com/query.html?col=jsun&pw=100%25&ws=0&nh=10&qt=deleg
ation c'e' qualche documento che ne parla in modo approfondito.
A presto :-)
Marco Abis
http://www.programmazione.it
 Il sito Italiano di riferimento per lo
sviluppatore
ab...@programmazione.it




 su dove cercare?
Di preciso no, ma non dovrebbe essere il modello proposto in Eiffel?
In teoria comunque l'ereditarietà per contenimento è funzionalmente
equivalente a quella per derivazione multipla.
Ovvero: con il contenimento puoi fare a meno dell'ereditarietà multipla, a
meno di parecchie funzioni di forwarding e altre menate.
Avevo letto qualcosa di più, ma non ricordo dove. E' possibile su Computer
Programming?
Ciao
--
Alessandro Monti

 anche con lycos ed altri, ma ottengo solo spazzatura... :(
trovato su AV mettendo "delegation in java" come search string.
http://javalab.informatik.uni-bonn.de/research/darwin/delegation_eng.html
ciao
guglielmo

Come?
Non me lo chiedere, non conosco java...
non per nulla ho detto "mi pare".
Ho citato java solo perche` mi pare di ricordare un vecchio thread su
un altro NG in cui si accennava alla cosa facendo riferimento a Java.


meno di parecchie funzioni di forwarding e altre menate.
Anche dell'ereditarieta` semplice volendo...
Ma appunto il semplice contenimento non e` potente quanto 
l'ereditarieta` e ti costringe a scrivere molto codice per semplice
e logorroico forwarding.


Molte grazie a tutti per i numerosi link...
Io mi ero perso a scartare tra la spazzatura di
lycos e altavista.


 Paolo
Allora buona caccia...
...e facci sapere i risultati.


 un altro NG in cui si accennava alla cosa facendo riferimento a Java.
Ok, ok perdonato :-)
Ma solo perchè posti spesso info molto interessanti...
Comunque grazie x la richiesta perché interessa anche me, infatti ho
letto uno dei link che ti hanno mandato (mi pare c'entrasse Darwin) ed è
stato interessante.
Inoltre io sapevo quello che ti ho scritto sulla delegatino in java, ma
magari so solo mezza storia, tu un quarto ... e qualcun altro riempie il
vuoto così tutti abbiamo un quadro più completo...
Hai provato il sito della ML sui Design Patterns? Li è possibile
discutere con gente interessata. (Io sono già iscritto ad "idpsg")
Qualcun altro è interessato?
