Question

J'ai toujours mis en place un Model-View-Presenter [Voir passif] comme ceci:

interface IView
{
string Title {set;}
}

class frmTextBox : Form, IView
{
...
public string Title
{
set { this.txtTitle.Text = value; }
}
...
}


class frmLabel : Form, IView
{
...
public string Title
{
set { this.lblTitle.Text = value; }
}
...
}

class Presenter
{
private IView view;
...
public void UpdateTitle
{
this.view.Title = "A Good Title";
}
...
}

et j'ai traditionnellement utilisé uniquement les types primitifs dans l'interface IView (int, string, bool) parce que je l'ai toujours compris que vous avez besoin d'utiliser des types primitifs que dans la vue. Dans un dépôt (comme NHibernate), si je veux afficher une liste d'éléments dans un DataGridView, je dois passer une collection générique (IList<T>) du modèle au présentateur. Est-ce que contreviendrait à la règle derrière des vues comme consistant uniquement des types primitifs ou serait-ce architecturalement OK?

Même si j'avais un objet de transfert de données (DTO), qui serait plus d'un contrôleur de supervision plutôt que le style de vue passif que je suis en train de mettre en œuvre.

Pensées ??

Était-ce utile?

La solution

modèles existent pour vous aider à concevoir votre solution basée sur l'expérience des autres.

Ils ne sont plus que des modèles formalisés.

Utiliser quelle structure vous rend plus productif, même si elle ne correspond pas à une définition arbitraire parfaitement.

Autres conseils

Wow je l'ai peut-être été absent sur un terrain. Je ne l'ai jamais vu des vues comme étant limité à qu'afficher types primitifs.

Je serais intéressé de savoir pourquoi cette restriction est utilisé et ce au profit de celui-ci est? Cela ne veut pas dire que « l'OMI il est totalement faux », mais je suis curieux de ses avantages. Ma conviction est que les ordinateurs sont suffisamment puissants maintenant que si vous ciblez une spécification de performance spécifique du coût d'un martelage de développeur loin pour s'adapter à une ligne directrice serait une utilisation coûteuse des ressources.

Non que c'est une approbation en tant que tel. mais tous les articles que j'ai vu MVC ont été heureux autour de cours entre unissent leurs la vue et le contrôleur. Étant donné que MVP est juste une forme différente de MVC, je dirais que si ce n'est pas un problème avec MVC devrait-il avec MVP?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top