C# 模型视图演示器和传输大型对象

C# 模型视图演示器和传输大型对象,c#,nhibernate,datagridview,mvp,passive-view,C#,Nhibernate,Datagridview,Mvp,Passive View,我传统上实现了模型视图演示器[被动视图],如下所示: 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.

我传统上实现了模型视图演示器[被动视图],如下所示:

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";
}
...
}
我传统上只在
IView
界面(
int
string
bool
)中使用基元类型,因为我一直明白,您只需要在视图中使用基元类型。在存储库(例如
NHibernate
)中,如果我想在
DataGridView
中显示项目列表,我必须将通用集合(
IList
)从模型传递给演示者。这是否违反了视图背后的规则,即仅由基本类型组成,或者这在架构上可以吗

即使我有一个数据传输对象(DTO),它也更像是一个监督控制器,而不是我试图实现的被动视图样式


想法???

哇,也许我错过了很多。我从未见过视图仅限于显示基本类型

我很想知道为什么会使用这个限制以及它的好处是什么?这并不是说“在我看来,这是完全错误的”,但我很好奇它的好处。我相信计算机现在已经足够强大了,除非您针对特定的性能规范,否则开发人员为满足某些准则而努力的成本将是昂贵的资源使用


并不是说这本身就是一种认可。但是,我看到的所有MVC文章都很高兴地围绕视图和控制器之间的类展开讨论。既然MVP只是MVC的一种不同形式,我想说,如果MVC没有问题,那应该是MVP吗?

哇,也许我错过了很多。我从未见过视图仅限于显示基本类型

我很想知道为什么会使用这个限制以及它的好处是什么?这并不是说“在我看来,这是完全错误的”,但我很好奇它的好处。我相信计算机现在已经足够强大了,除非您针对特定的性能规范,否则开发人员为满足某些准则而努力的成本将是昂贵的资源使用


并不是说这本身就是一种认可。但是,我看到的所有MVC文章都很高兴地围绕视图和控制器之间的类展开讨论。由于MVP只是MVC的一种不同形式,我想说,如果MVC没有问题,那么MVP应该有问题吗?

模式可以帮助您根据他人的经验设计解决方案

它们只不过是形式化的模板


使用任何能使您更高效的结构,即使它不完全符合任意定义。

存在模式,可以帮助您根据他人的经验设计解决方案

它们只不过是形式化的模板


使用任何能让您更高效的结构,即使它不完全符合任意定义。

我可以轻松地将IList从模型传递到演示者,再传递到DataGridView显示的视图,从技术上讲,没有什么可以阻止它,但不确定这在架构上是否是正确的答案,或者我应该使用其他一些轻量级方法。我可以很容易地将IList从模型传递给演示者,再传递给DataGridView显示的视图,从技术上讲,没有什么可以阻止它,但不确定这在架构上是正确的答案,还是应该使用其他一些轻量级方法。