MVC e c++

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

MVC e c++

Messaggio da giuseppe500 »

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.
Avatar utente
paper0k
Rampante Reduce
Rampante Reduce
Messaggi: 7220
Iscrizione: lunedì 2 ottobre 2006, 13:39
Contatti:

Re: MVC e c++

Messaggio da paper0k »

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
Chiunque può essere ragionevole, ma esser sani di mente è raro (Oscar Wilde)
Wiki|Blog|Twitter|Identi.ca|last.fm
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: MVC e c++

Messaggio da giuseppe500 »

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.
Avatar utente
paper0k
Rampante Reduce
Rampante Reduce
Messaggi: 7220
Iscrizione: lunedì 2 ottobre 2006, 13:39
Contatti:

Re: MVC e c++

Messaggio da paper0k »

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
Chiunque può essere ragionevole, ma esser sani di mente è raro (Oscar Wilde)
Wiki|Blog|Twitter|Identi.ca|last.fm
giuseppe500
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 470
Iscrizione: martedì 22 maggio 2012, 14:04
Distribuzione: 22.04
Sesso: Maschile

Re: MVC e c++

Messaggio da giuseppe500 »

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.
Avatar utente
paper0k
Rampante Reduce
Rampante Reduce
Messaggi: 7220
Iscrizione: lunedì 2 ottobre 2006, 13:39
Contatti:

Re: MVC e c++

Messaggio da paper0k »

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
Chiunque può essere ragionevole, ma esser sani di mente è raro (Oscar Wilde)
Wiki|Blog|Twitter|Identi.ca|last.fm
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite