我们正在使用Model-View-Presenter被动视图策略构建我们的软件。在我们的软件上,我们有一个报告和不同类型的图表。因此,我们必须对图表的抽象类的功能,所有的图表将实施:如何在MVP中为抽象模型创建视图和演示者
abstract class AbstractChart
{
...
}
然后我们有具体类(模型),可以说,条形图和饼图:
class BarChart: AbstractChart
{
...
}
class PieChart: AbstractChart
{
...
}
报表可以包含不同图表的种类。
class Report
{
public List<AbstractChart> Charts {get; set; }
...
}
所以,我们必须在报表上绘制不同的图表的一个问题:
class ReportPresenter
{
Report _report;
ReportView _view;
...
FillReportView(Report report)
{
foreach(AbstractChart chart in _report.Charts)
{
// Here is the problem: How do we create correct
// view and presenter for abstract chart? We need to
// create them, so we can add chart view to _view.
}
}
}
有没有原因,你不使用MVVM与WPF? – 2012-02-28 14:00:02
我们尝试过MVVM,但虽然它看起来非常好,但它证明了我们的需求太复杂。 – teemu 2012-02-29 06:51:31
我的经验是MVVM *正确使用*极大地降低了**复杂性。 – 2012-02-29 10:56:00