Nel modello MVC, il modello e la vista dovrebbero essere molto concreti e adattati al componente rappresentato? O dovrebbero essere il più generici possibile in modo che possano essere facilmente riutilizzati?
Caso specifico
I miei dati sono una lista di fotogrammi registrati. Ogni frame può essere costituito da più blob di dati, ad esempio un'immagine e alcuni metadati:
-
Approach (1) : potrei usare un generico
TableModel
per rappresentare i dati registrati e un genericoTableView
per visualizzarlo: Ogni colonna rappresenta un frame e ogni riga rappresenta un tipo di dati. Ad esempio, una riga è l'immagine, una riga è una descrizione dell'immagine inserita dall'utente, ecc. -
Approach (2) : potrei creare uno specifico
RecorderModel
, che forse riutilizza il genericoTableModel
e uno specificoRecorderView
, che forse riutilizza il genericoTableView
.
Quest'ultima opzione sembra preferibile, poiché il modello e la vista possono essere facilmente modificati se vengono richieste modifiche specifiche. Tuttavia, sembra che finirei con un sacco di classi vuote come RecorderModel
/ RecorderView
che racchiudono solo il generico TableModel
/ TableView
.
Ci sono delle insidie o importanti vantaggi / svantaggi di cui dovrei essere a conoscenza? C'è un consenso generale come usa sempre modelli generici, usa sempre viste concrete o qualcosa di simile? Dipende dal framework MVC usato?