Mi piacerebbe sapere quando si utilizza Prisma, è preferibile utilizzare gli oggetti di richiesta di interazione per utilizzare il modello di servizio di interazione. Per quanto mi riguarda, il servizio di interazione deve essere utilizzato in casi semplici, ad esempio quando si ha un popup di messaggio standard e solo il contenuto del testo verrà modificato. D'altra parte, gli oggetti di richiesta di interazione sono più adatti quando l'interfaccia utente è più complicata. Ma il servizio di interazione è molto più facile da implementare e richiede meno codice. Cosa ne pensi?Servizio di interazione contro oggetti di richiesta di interazione
risposta
Sono d'accordo con te che un servizio di interazione può essere adatto per comportamento comune interazione come MessageBox ecc
A mio parere, si riduce alla classe responsabilità. In altre parole, vuoi che ViewModel o View siano responsabili della specifica del tipo di interazione che dovrebbe avvenire?
consideri una base un'interfaccia Interaction Servizio:
public interface IInteractionService{
MessageBoxResult ShowMessageBox(string messageBoxText, string caption, MessageBoxButton button);
}
E 'abbastanza evidente osservando l'interfaccia che tipo di comportamento ShowMessageBox sta per produrre. Ciò conferisce al ViewModel un certo grado di controllo in termini di specificare quale tipo di comportamento di interazione si aspetta che si verifichi. Il problema con questo approccio è che ViewModel ora ha una dipendenza da IInteractionService oltre ad essere esplicito nelle sue aspettative di comportamento di interazione. Questo potrebbe rendere il tuo ViewModel meno riutilizzabile.
Con gli oggetti di interazione, è possibile inserire una maggiore responsabilità del comportamento di interazione sulla vista. In altre parole, è possibile modificare il comportamento e l'aspetto dell'interazione senza influire direttamente su ViewModel. Ad esempio, V1 della richiesta di interazione potrebbe visualizzare un MessageBox semplice. Il V2 della richiesta di interazione potrebbe essere una finestra di dialogo più complessa che richiede più interazione da parte dell'utente con un semplice clic del pulsante. Questo tipo di cambiamento del comportamento di interazione può essere gestito senza richiedere la modifica del ViewModel. Questo può essere utile se hai un designer dell'interfaccia utente che lavora al progetto che vuole l'opzione di scambiare o modificare il comportamento o l'aspetto di una vista legata a una richiesta di interazione.
Se si desidera, è possibile utilizzare entrambe le strategie. In altre parole, un servizio di interazione per comportamenti di interazione comuni e oggetti di interazione per un comportamento più complesso.
Per riepilogare, i servizi di interazione possono essere più facili da usare ma gli oggetti di interazione possono rendere i vostri ViewModel più riutilizzabili, a mio parere.
L'enorme inconveniente di utilizzare un servizio di interazione per visualizzare una finestra di messaggio è la finestra principale - o piuttosto la mancanza di uno.
Quale finestra si deve fornire come genitore della finestra di messaggio, dal modello di vista o dall'implementazione del servizio? Se scegli Application.Mainwindow, stai facendo una grande supposizione sul layout generale dell'applicazione.
L'unica entità nel processo che conosce come per visualizzare l'interazione è la vista. Indipendentemente dal fatto che utilizzi una finestra di messaggio o un overlay in-page.
Esistono pochi argomenti validi a favore dell'utilizzo di un servizio di interazione. Quello usato spesso è che è più facile. Questo può essere vero, ma è anche vero per molte altre cose che non dovrebbero essere fatte, ad es. codice dietro, ecc.
- 1. Android - interazione servizio e attività
- 2. controller <-> Servizio componente interazione
- 3. Plot interazione R grafici di
- 4. Interazione UIButton all'interno di UIPageViewController
- 5. interazione Apache + mod_wsgi
- 6. interazione SVN Hudson JIRA
- 7. Funzione interazione Haskell
- 8. modifica interazione e pmap?
- 9. interazione super() e @staticmethod
- 10. BindingSource/DataGridView interazione
- 11. Interazione di namespace e friend in C++?
- 12. specifiche/problema di interazione scalare nell'app Play
- 13. Interazione con un'API REST di Clojure
- 14. convalida interazione database mpg asp.net
- 15. Interazione VBA con Internet Explorer
- 16. Interazione tra due controlli utente
- 17. Interazione IO e forse monade
- 18. Interazione mappa leaflet in AngularJS
- 19. Regressione effetti fissi con errore di causa termini di interazione
- 20. Generazione di variabili di interazione in R dataframes
- 21. Interazione dell'app Android con i metodi di azione di Laravel
- 22. Visualizzazione contenitore con Storyboard, interazione e problemi di visualizzazione
- 23. Vowpal Wabbit ignorare termini lineari, mantenere solo termini di interazione
- 24. Android: Errore con il frammento di interazione Listener
- 25. Interazione ciclo di vita JUnit @Rule con @Before
- 26. Problemi di interazione con le modalitā Bootstrap via Capybara (v2)
- 27. Formula manipolazione (inserire i termini di interazione nell'ordine corretto)
- 28. Interazione di Meteor con JQuery o Animazione in generale
- 29. Come generare molti termini di interazione in Panda?
- 30. Avvia chat video senza interazione dell'utente - Android
Ho la stessa domanda. Chiunque ... – dFlat