I can't decide what the Model part (that is passed and handled by presenters/controllers and passed to views) used in a MVx application should really be.
So is Model
- a single business entity? E.g. a Customer class mapped to database table or service object, possibly with own helper methods like ComputeAge?
- a composed business entity for every different form/page/screen of the app? E.g. a CustomerMasterDetail class mapped to a database view or service object, containing a Customers list, data for the Customer selected in the list, and also relevant data like Customer's current Car or Company?
- the whole business entity "database"? Would a presenter receive the whole data repository and extract the relevant data itself?
The examples i could find were mostly dumbed down and reduced the Model layer to a single Person entity. I am looking for a proper, uniform way instead.
If i need to specify i want to use MVP Passive view as it seems more "clean", but i think the principles might be the same in MVC or even MVVM.
EDIT I am not asking about the whole MVP pattern, there are many explanations. But they don't explain the Model in practice.
They either say view can databind to it, which excludes variant 3. But they don't talk about multiple models for a single view, which seems to exclude variant 1. And their example model is always a simple entity, which excludes 2 or makes the example unhelpful.