我目前正在从aspx应用程序重新设计一个软件,以支持winforms,通过这样做,我实现了MVP模式,以便更轻松地处理进一步的开发,并且更容易维护同一应用程序的两个版本。
但这是我第一次实施这种模式,因此有几个问题表现出来。
由于此应用程序有多个页面/表单,每个视图是否应该有一个演示者(一个视图=一个aspx文件)?我猜是的,以便更容易维护并保持IView接口的整理。
我应该把IView写成什么'标准'细节?即。为了测试这个,我正在编写RegisterUser.aspx视图,并且在某些时候我想要禁用某些控件,如果我有一个通用的' void DisableControl(string name); void EnableControl(string name); '或更专业的' void DisablePasswordControl(); void EnablePasswordControl(); '?
我可以看到两种方法的利弊,所以我认为在我养成任何坏习惯之前至少应该问一下。
答案 0 :(得分:1)
1是
2我会选择这样的房产:
public class RegisterUser : IRegisterUserView
{
bool IRegisterUserView.PasswordEnabled
{
get { return tbPassword.Visible ; }
set { tbPassword.Visible = value; }
}
}
答案 1 :(得分:0)
对于第1点,每个视图应该是1个演示者,除非你有一个非常相似的演示者使用相同的视图。
对于第2点,您应该将其设置为void DisableControl(字符串名称),尽管这不是太必要,因为它可以在页面的aspx.cs部分中处理。这取决于您何时以及何时隐藏控件。
祝你好运!