Ho letto molte domande qui, che sembrano confondere il modello MVP / MVC con il modello di dominio. Nella mia mente, il modello MVP chiama il servizio, che quindi chiama un ricco modello di dominio in cui il modello MVC / MVP è un modello di vista.
Ho visto molto codice, che fa questo (questo è il modello MVC):
public class Model : IModel
{
private IService service;
public PersonModel GetPerson(int id)
{
PersonDTO personDTO = service.GetPerson(int id);
PersonModel personModel = Mapper.Map<PersonModel>(personDTO);
return personModel;
}
}
Il modello chiama il servizio e il servizio chiama un modello di dominio ricco, cioè un modello di dominio in cui le classi contengono sia lo stato che il comportamento.
Si noti nel codice precedente che esiste una classe chiamata Modello (che contiene il comportamento e chiama il servizio) e una classe chiamata PersonModel. Dovrebbe esserci una classe chiamata PersonModel, che contiene sia lo stato che il comportamento se un modello di dominio ricco è a livello di livello aziendale / dominio? Sto parlando delle migliori pratiche qui. So che entrambi gli approcci funzionano.