【发布时间】:2017-11-08 09:46:15
【问题描述】:
我已经实现了 MVC 模式,并且正在考虑错误处理和捕获用户决定。
我目前的做法是: 为每个决策类型创建一个事件挂钩,并让 GUI 视图(在我的情况下为表单)创建特定的用户交互(如控制台输出或消息框)
我的问题:这似乎有点奇怪,有没有更好的方法来做到这一点?
如果不是,应该如何设计类UserDecission 来处理大多数用户交互情况?
简单示例:视图已注册到AskUser并调用SaveFile()
public class UserDecission
{
/// <summary>
/// Asked to the user, might be a placeholder constant, which the gui can make "pretty"(Display a MessageBox to the user)
/// </summary>
public string Question { get; set; }
/// <summary>
/// return value
/// </summary>
public string Answer { get; set; }
}
public interface IModel
{
void SaveFile(string filename);
EventHandler<UserDecission> AskUser { get; set; }
}
public class Model : IModel
{
public EventHandler<UserDecission> AskUser { get; set; }
public void SaveFile(string filename)
{
if (File.Exists(filename))
{
UserDecission decission = new UserDecission() { Question = "FileExistsOverwrite" };
AskUser?.Invoke(this, decission);
if (!decission.Answer.Equals("Yes"))
return;
//... Do the saving here
}
}
}
【问题讨论】:
标签: c# asp.net-mvc error-handling observer-pattern