在Winforms中实现MVP模式时,我经常发现blo肿的视图接口,属性,设定器和获取器过多。一个简单的示例,即带有3个按钮和7个文本框的视图,所有这些都具有从视图中暴露的值,启用和可见属性。为此添加验证结果,您可以轻松地获得具有40ish属性的接口。使用演示模型,将有一个模型,具有相同数量的属性。

您如何轻松地同步视图和演示文稿模型,而没有肿的演示者逻辑来回传递所有值? (使用80ish Line演示者代码,想象一下嘲笑模型和视图的主持人测试将看起来像..160ish代码线只是为了模拟该传输。)是否有任何框架可以处理此框架,而无需求助于winforms winforms databinding? (您可能想使用与Winforms视图不同的视图。根据某些人的说法,此同步应该是主持人的作业。)您会使用自动应用程序吗?

也许我在问错误的问题,但在我看来,MVP很容易在这里没有一些好的解决方案。

没有正确的解决方案

其他提示

这只是一个想法,我知道有些人可能不喜欢它 - 您可以在这里做很多不同的事情。

如果您发现自己使用了很多样板代码,请将其封装。

public class UiField<ContentType>
{
    public bool IsEnabled { get; set; }
    public ContentType Value { get; set; }
    public bool IsVisible { get; set; }
}

在您看来,

public interface ISampleView
{
    UiField<bool> IsStaffFullTime { get; set; }
    UiField<string> StaffName { get; set; }
    UiField<string> JobTitle { get; set; }
    UiField<int> StaffAge { get; set; }
    UiField<IList<string>> Certifications { get; set; }
}

在这里,您将与每个字段关联的各种属性结合在一起。

顺便说一句,我建议您不要手工测试这些接口 - 使用模拟框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top