In the MVC pattern, should model and view be very concrete and tailored to the represented component? Or should they be as generic as possible so that they can easily be reused?
My data is a list of recorded frames. Each frame can consist of multiple data blobs, for example, an image and some meta data:
Approach (1): I could use a generic
TableModelto represent the recorded data and a generic
TableViewto display it: Each column represents a frame and each row represents one kind of data. For example, one row is the image, one row is an image description entered by the user, etc.
Approach (2): I could create a specific
RecorderModel, which maybe reuses the generic
TableModel, and a specific
RecorderView, which maybe reuses the generic
The latter seems to be preferable, because model and view can easily be udpated if specific changes are requested. However, it looks like I would end up with lots of empty classes like
RecorderView that just wrap the generic
Are there pitfalls or important advantages/disadvantages I should be aware of? Is there a general consens like always use generic models, always use concrete views or something similar? Does it depend on the used MVC framework?