Model view controller MVC设计问题-每个组件的角色
这是我们第一次使用这个模式(我们甚至不确定这个模式是否适合这个项目),我和我的伙伴们有几个问题。 我们正在设计一个简单的应用程序,用于显示有关权限的文件Model view controller MVC设计问题-每个组件的角色,model-view-controller,Model View Controller,这是我们第一次使用这个模式(我们甚至不确定这个模式是否适合这个项目),我和我的伙伴们有几个问题。 我们正在设计一个简单的应用程序,用于显示有关权限的文件 假设“Joe”当前已登录到系统,将“Joe”保存为活动用户的正确位置在哪里 在这种情况下,控制器的角色是什么?假设“Joe”想要登录系统。他输入密码并单击登录,视图是否应直接使用模型验证详细信息?还是应该让控制员替他做 假设登录成功,现在该怎么办?视图是否应该作为模型的观察者侦听,等待登录正确的响应,然后切换窗口?或者控制器应该有一个名为boo
boolean ValidateLogin()
的方法,该方法由视图调用并相应地执行操作正如您所看到的,我们非常困惑,任何帮助都将不胜感激。对于您的需求,我建议您从这个项目开始 它有一些示例,可以执行基本的身份验证和角色管理 它还使用.Net成员资格提供程序,这样您就不会重新发明轮子
这假设OPs对ASP.net MVC感兴趣-我怀疑他们只是对MVC设计模式感兴趣。@halfer抱歉,我没有注意到标签只是MVC。第一个问题可能需要澄清。“保存”是指作为UI操作结果的特定模型操作吗?如果是这样,那就是一个与模型对话的控制器函数。或者,如果您的意思是“将Joe保持为活动用户”,那么这是会话的一项功能,我认为这是控制器的责任。@halfer每个用户在登录时都会显示他有权查看的所有文件。现在,假设模型有一个getFiles(User-User)方法,该方法返回“User”有权查看的文件列表。谁应该提供“用户”?模型是否应该知道活动用户是谁?控制器应该知道活动用户是谁吗?对,明白了:模型绝对不应该知道活动用户是谁。这应该由控制器维护和读取,并提供给模型方法(将其分离有助于单元测试)。您的方法很好:
getFiles(User-User)
在模型中意味着必须向它提供User
——这是控制器的工作。当然,在处理用户安全方面,我也会有所帮助。