En primer lugar una buena pregunta. En segundo lugar, puede no importar, mucho. Mi preferencia personal es conectar casi siempre Presenter y View en la Vista.
comparar este escenario:
public class SomePresenter
{
public ShowContactView(IContactView view)
{
IContact model = new Contact();
new ContactPresenter(model, view);
view.Show();
}
}
public class AnotherPresenter
{
public ShowContactView(IContactView view)
{
IContact model = new Contact();
new ContactPresenter(model, view);
view.Show();
}
}
public class YetAnotherPresenter
{
public ShowContactView(IContactView view)
{
IContact model = new Contact();
new ContactPresenter(model, view);
view.Show();
}
}
public partial class ContactView : Form, IContactView
{
public ContactView()
{
InitializeComponent();
}
}
a esto:
public class SomePresenter
{
public ShowContactView(IContactView view)
{
view.Show();
}
}
public class AnotherPresenter
{
public ShowContactView(IContactView view)
{
view.Show();
}
}
public class YetAnotherPresenter
{
public ShowContactView(IContactView view)
{
view.Show();
}
}
public partial class ContactView : Form, IContactView
{
public ContactView()
{
InitializeComponent();
new ContactPresenter(new Contact(), this);
}
}
Como se puede ver que el último tiene mucha menor duplicación de código. Por supuesto, esa es una duplicación absurda o podría decir que puede mover la funcionalidad común a una función compartida, pero entiendo el punto, eso es solo un ejemplo. Es cuando tendrá la misma Vista para ser instanciada en varias partes de su aplicación.
Además, la ventaja de Ver conocer el presentador es que solo necesita hacer referencia al presentador en su proyecto de visualización, para que pueda volver a utilizar el mismo presentador en diferentes aplicaciones de interfaz de usuario. De lo contrario, tendrá que hacer referencia a cada proyecto de visualización en el presentador.
Pero lo más importante es ver cómo los diferentes modelos se adaptan a su caso. Para ser honesto, there are more possibilities even. See this duplicate question.
¿qué tal winforms? – adriaanp