MVC e c++
-
- Scoppiettante Seguace
- Messaggi: 470
- Iscrizione: martedì 22 maggio 2012, 14:04
- Distribuzione: 22.04
- Sesso: Maschile
MVC e c++
ciao.
Devo realizzare un piccolo framework MVC in c++.
Quello che non mi è chiaro è questo:
la view chiamana un metodo sul controller .
Il controller estrae dal model cio che serve per rispondere a quel metodo e poi?
1)il controller invia alla view dei dati usando delle sue strutture che vengono riempite tramite il model e la logica del controller e passate alla view disaccoppiando le due entità.
2)Il model si passa alla view con un observer?come funziona? la view come fa a sapere che dati prendere? e dov' è il disaccoppiamento?
Il metodo 1 è piu pulito secondo me , ma meno performante.
è il metodo 2 che non ho capito del tutto e che vorrei implementare perchè mi sembra piu performante.
vorrei infatti utilizare il pattern per un applicazione real time rendering in opengl.
Devo realizzare un piccolo framework MVC in c++.
Quello che non mi è chiaro è questo:
la view chiamana un metodo sul controller .
Il controller estrae dal model cio che serve per rispondere a quel metodo e poi?
1)il controller invia alla view dei dati usando delle sue strutture che vengono riempite tramite il model e la logica del controller e passate alla view disaccoppiando le due entità.
2)Il model si passa alla view con un observer?come funziona? la view come fa a sapere che dati prendere? e dov' è il disaccoppiamento?
Il metodo 1 è piu pulito secondo me , ma meno performante.
è il metodo 2 che non ho capito del tutto e che vorrei implementare perchè mi sembra piu performante.
vorrei infatti utilizare il pattern per un applicazione real time rendering in opengl.
Re: MVC e c++
Relativamente al metodo 2, il controller riceve dalla view una notifica relativamente all'azione eseguita dall'utente (input), elabora ed aggiorna il model, quindi il model notifica alla view l'aggiornamento (observer) dei dati e la view aggiorna la finestra di conseguenza
Non so se ho risposto alla domanda
Non so se ho risposto alla domanda
-
- Scoppiettante Seguace
- Messaggi: 470
- Iscrizione: martedì 22 maggio 2012, 14:04
- Distribuzione: 22.04
- Sesso: Maschile
Re: MVC e c++
grazie, vorrei sapere un altra cosa:
se ho tante azioni sul controller che possono essere richiamate, come sa la view che dati deve prendere dal model?
praticamente:
se per un azione devo estrarre dal model il set di dati A
e per un altra azione il set di dati B
come sceglie la view il set di dati A oB ?
mi puoi mettere un link o un breve esempio?
grazie.
se ho tante azioni sul controller che possono essere richiamate, come sa la view che dati deve prendere dal model?
praticamente:
se per un azione devo estrarre dal model il set di dati A
e per un altra azione il set di dati B
come sceglie la view il set di dati A oB ?
mi puoi mettere un link o un breve esempio?
grazie.
Re: MVC e c++
Glielo dice il model che è cambiato, non il controller
Facciamo un esempio (senza codice), la view visualizza e consente la modifica di due campi, nome e cognome, questi sono i nostri model.
La view si imposta come listener di questi due model, cioè si mette in ascolto (attach) di ogni modifica, ogni model dispone di una lista di puntatori ad Observer/Listener (in Java sono semplici interface, in C++ generalmente sono classi virtuali pure), che la view estende.
Quando il controller aggiorna uno dei due model, quest'ultimo notifica a tutti i suoi listener l'evento (invocando un metodo della classe Observer/Listener per ogni puntatore storicizzato), e dice "guarda che qualcuno ha modificato il nome dell'utente" o "guarda che qualcuno ha modificato il cognome dell'utente", e la view si aggiorna di conseguenza.
Ovviamente è un esempio, nome e cognome dovrebbero essere 2 campi di un model "anagrafica_utente", ma è per farti capire il funzionamento
Sicuramente in rete trovi esempi sull'argomento, certamente più esaustivi di questo che ho scritto al volo
Ciao
Facciamo un esempio (senza codice), la view visualizza e consente la modifica di due campi, nome e cognome, questi sono i nostri model.
La view si imposta come listener di questi due model, cioè si mette in ascolto (attach) di ogni modifica, ogni model dispone di una lista di puntatori ad Observer/Listener (in Java sono semplici interface, in C++ generalmente sono classi virtuali pure), che la view estende.
Quando il controller aggiorna uno dei due model, quest'ultimo notifica a tutti i suoi listener l'evento (invocando un metodo della classe Observer/Listener per ogni puntatore storicizzato), e dice "guarda che qualcuno ha modificato il nome dell'utente" o "guarda che qualcuno ha modificato il cognome dell'utente", e la view si aggiorna di conseguenza.
Ovviamente è un esempio, nome e cognome dovrebbero essere 2 campi di un model "anagrafica_utente", ma è per farti capire il funzionamento
Sicuramente in rete trovi esempi sull'argomento, certamente più esaustivi di questo che ho scritto al volo
Ciao
-
- Scoppiettante Seguace
- Messaggi: 470
- Iscrizione: martedì 22 maggio 2012, 14:04
- Distribuzione: 22.04
- Sesso: Maschile
Re: MVC e c++
sei stato molto gentile, ho trovato infatti in rete un esempio di quello che mi hai spiegato, http://sourcemaking.com/design_patterns/observer/cpp/3# adesso ho capito, grazie.
Solo una cosa:
Ho capito che in questo modo ci sono diversi model, non uno solo, è questo che mi confondeva, perchè lavorando in mfc il model è una classe in cui si mette la maggior parte della logica della applicazione, con il pattern document/model dell' mfc ed è uno solo, ho in tutta l'applicazione una sola istanza della classe model, che uso per gli scopi piu svariati.
mi puoi correggere se sbaglio?
grazie.
Solo una cosa:
Ho capito che in questo modo ci sono diversi model, non uno solo, è questo che mi confondeva, perchè lavorando in mfc il model è una classe in cui si mette la maggior parte della logica della applicazione, con il pattern document/model dell' mfc ed è uno solo, ho in tutta l'applicazione una sola istanza della classe model, che uso per gli scopi piu svariati.
mi puoi correggere se sbaglio?
grazie.
Re: MVC e c++
In linea di massima il model gestisce l'accesso ai dati e la loro manipolazione, la view la loro visualizzazione e iterazione con l'utente ed il controller fa da "ponte" tra i due
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 1 ospite