MVP,Winforms-如何避免视图,演示者和演示模型
-
05-10-2019 - |
题
在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; }
}
在这里,您将与每个字段关联的各种属性结合在一起。
顺便说一句,我建议您不要手工测试这些接口 - 使用模拟框架。
不隶属于 StackOverflow