On 04/dic/07, at 11:41, Massimo Valle wrote:
Questo è vero per una subclass, che la rende di fatto un oggetto non
facilmente riutilizzabile.
Ma con i delegates si potrebbe sostanzialmente agganciare l'evento
Action a qualsiasi metodo, sia esso globale o un metodo di un
oggetto istanziato. Ottenendo lo stesso controllo fine che si
ottiene istanziando un oggetto da IDE. Per inciso il metodo dei
delegates è ampiamente utilizzato in Cocoa, ma anche in altri
linguaggi.
Non ti seguo. Pur potendo utilizzare i delegati come puntatori a
funzione non sarebbe comunque possibile (nè in linea con i principi
dell'OOP a dire il vero) agganciarli "per istanza" del controllo. In
parole povere, a prescindere dalle limitazioni imposte da scelte
progettuali, non vedo il modo per specificare a runtime con i delegati
quello che permette di fare l'IDE (ad. esempio, nel caso dell'ormai
famoso PushButton, specificare un Action() diversa "per istanza").
Puoi fare un esempio?
La situazione è evidentemente più complessa e ho volutamente
semplificato. La proprietà Window, peraltro, viene correttamente
impostata, ma ad un livello più basso il runtime di RB dovrebbe
agganciare la nuova istanza al tree dei controlli relativi alla
finestra.
Ritengo comunque non sia impossibile da fare. Piuttosto penso che
questo comportamento sia radicato nelle origini di RB e sia frutto
di una semplificazione voluta inizialmente, quando RB non aveva la
pretesa di implementare una gestione ad oggetti così spinta per una
questione di semplicità d'uso.
In questa direzione, anche la classe Window non può essere
istanziata direttamente al runtime, ma necessita prima la
definizione di una subclass da usare come istanza diretta o anche
come classe da istanziare.
ok.
--
gilberto de faveri
omnidea srl
edificio pegaso
parco scientifico tecnologico vega
via delle industrie, 15
30175 venezia marghera
tel +39 041 509 3441
fax +39 041 509 3641
www.omnidea.it
|