Eu tenho lido sobre MVP, especificamente Supervisionando Controller. Uma coisa que estou tendo dificuldade em entender é como o View interage com o Modelo.
Entendi que o apresentador deveria atualizar o modelo e que o View lê do modelo. O Presenter também pode atualizar a exibição por meio de uma interface. O artigo de Martin Fowler sobre isso parece mostrar exatamente isso ( http://martinfowler.com/eaaDev/SupervisingPresenter.html ).
No entanto, outros artigos / blogs mostram a visualização atualizando o modelo diretamente ( https://blogs.msdn.microsoft.com/erwinvandervalk/2009/08/14/the-difference-between-model-view-viewmodel-and-other- padrões de apresentação separados / ).
Sei que esses são apenas padrões, portanto, haverá implementações diferentes, mas a exibição da atualização do modelo parece estar fazendo muito mais do que deveria.
Digamos, por exemplo, eu tive uma classe de pessoa que continha um nome e número de telefone. A visualização pode exibir esse nome e número e um botão de envio para alterar o nome e o número da pessoa. Quando o botão enviar é clicado, eu esperaria que a atualização fosse realizada no Presenter e não na View. No entanto, o artigo que referi propõe que a visualização pode atualizar diretamente o modelo.
Então, a visualização deve sempre atualizar o modelo? Ou isso deve ser tratado apenas pelo apresentador?
EDITAR:
Código do artigo do MSDN:
public class PersonalDataView : UserControl, IPersonalDataView
{
protected TextBox _firstNameTextBox;
public void SetPersonalData(PersonalData data)
{
_firstNameTextBox.Value = data.FirstName;
}
public void UpdatePersonalData(PersonalData data)
{
data.FirstName = _firstNameTextBox.Value;
}
}