Gestione dei distruttori in MVVM

1

Sto creando un'applicazione Model View View-Model (MVVM) usando Delphi XE6.

Dal momento che sto usando Pascal piuttosto che C #, ho bisogno di gestire la distruzione da solo. Non sono sicuro di come gestire la distruzione dei moduli.

Il mio Form ha un FormViewModel associato. Il FormViewModel dovrebbe essere responsabile di tutto il comportamento del modulo. Mi aspetto che questo includa la distruzione. Inoltre, quando Form viene distrutto, anche il FormViewModel deve essere distrutto. Quindi ha senso gestire queste cose insieme. Il problema è che non riesco a distruggere FormViewModel da un metodo all'interno di FormViewModel , poiché questo viene distrutto.

D'altra parte, posso gestire il lavoro in un'altra classe, come una classe Controller. Ma poi devo ottenere il Form per dire al Controller quale FormViewModel di istanza da distruggere. Ciò implicherebbe che Form conosca il FormViewModel , che non è conforme a MVVM.

Ho frainteso qualcosa su MVVM? C'è un modo per farlo in una lingua non gestita senza violare MVVM?

    
posta sav 24.03.2015 - 06:16
fonte

1 risposta

4

Se l'oggetto Form contiene un riferimento al suo oggetto FormViewModel, l'oggetto FormViewModel può essere facilmente eliminato nel distruttore dell'oggetto Form.

La tua idea che l'oggetto Form non debba sapere nulla sull'oggetto FormViewModel è posizionato in modo errato (e impossibile in MVVM). L'oggetto FormViewModel è sempre strettamente vincolato all'oggetto Form; l'intero punto di avere un oggetto FormViewModel è di avere uno strato di astrazione a cui è possibile associare strettamente, in modo da poterlo disaccoppiare dagli oggetti del dominio aziendale.

    
risposta data 24.03.2015 - 16:14
fonte

Leggi altre domande sui tag