Oppure

Loading
14/02/11 12:42
Dedalux
Lo so, quello che sto per dire è abbastanza vergognoso, ma ahimè, è la verità.
(Ma per fortuna si può imparare.. ^^)
Non avendo un'idea molto chiara di come si utilizzino le interfacce, mi vien da dire che non le so usare.
Mi spiego meglio: fin'ora ho sempre implementato interfacce di cui avevo sempre visto esempi di utilizzo, come ad esempio INotifyPropertyChanged, INotifyCollectionChanged, IComparer/(Of T), IComparable/(Of T), e via dicendo.
Le più comuni insomma...

Nella mia applicazione in MVVM ho bisogno di mostrare una finestra di modifica in cui il datacontext è un'istanza di un Model, ed ho la necessità di poter confermare o annullare le modifiche effettuate sull'istanza della classe.
Non essendo sicuro della correttezza dell'approccio che avevo in mente ho chiesto, e mi è stato consigliato l'utilizzo dell'interfaccia IRevertibleChangeTracking (msdn.microsoft.com/it-it/library/…).

Però non ho idea di come utilizzarla.. 8-|
Quello che voglio dire è: c'è uno standard (più o meno variabile) di utilizzo per le varie interfacce, o è a completa discrezione del programmatore.

Perchè per quanto mi riguarda, io farei come sto facendo ora con una specie workaround, se posso chiamarlo così: clono la classe da modificare, e se la modifica è confermata, sostituisco i valori della classe originaria con quelli del suo clone.
Altra idea che mi viene mentre scrivo è creare un Dictionay(NomeProprietà, Valore) per i valori precedenti alla modifica, da cui poi attingere in caso di annullamento.
Ma non mi sento per nulla sicuro.

Mi aiutereste a chiarirmi le idee?
Grazie infinite =)
Ultima modifica effettuata da Dedalux 14/02/11 12:46
aaa
14/02/11 12:50
HeDo
Purtroppo l'MVVM non è standard, che ti porta ad avere N soluzioni possibili.
Alcune soluzioni pagano subito, altre pagano dopo, in generale dipende tutto dalla grandezza del progetto e dalla sua complessità :)
Ultima modifica effettuata da HeDo 14/02/11 12:51
aaa
14/02/11 14:43
dedalux
Scrivo dall'account User, perchè quello Member non mi mostra il pulsante di risposta...

Io vorrei capire, quando si implementa un'interfaccia, come si procede..
Lo so che la domanda è troppo generica, ma è proprio quello che ho bisogno di sapere.
Quale logica va seguita, in che ordine di idee bisogna porsi, ci sono delle "regole di correttezza del codice"
aaa
14/02/11 21:14
netarrow
Lo scopo per cui esistono le interfacce è proprio quello di non darti alcuna logica.

L'unico limite è la firma dei metodi, che faranno da contratto fra la tua implementazione (libera) e le chiamate del codice client che dovranno ovviamente avvenire tramite dei metodi di cui sai lo stretto indispensabile: il nome, i parametri e il ritorno.

Cosa c'è dentro la particolare implementazione al client non gli deve interessare o non avrebbero senso.
aaa