Java应用程序,链接模型,视图和控制器

时间:2014-01-30 12:25:15

标签: java model-view-controller solid-principles

我打算为管理员编写一个类似“用户管理”系统的程序,并使用命令行视图。要求是登录和退出,用户权限(只有具有管理员权限的用户可以登录),添加用户,删除用户,删除用户,暂时禁止用户,查看可能未完成,正在进行或已完成的用户请求分配给管理员。 (我不担心创建用户请求。没有管理员权限的用户可以通过以后制作的另一个应用程序创建请求。)

这仅仅是为了学习,它不是一个真正用于现实生活的系统。这是练习MVC,以及SOLID原则的良好实践。

我将使用MVC。我理解模型,视图和控制器应该单独进行什么,但我不确定如何将它组合在一起。

当静态main方法运行时,它应该从何处开始?对控制器?它可以先调用视图吗?

我想的方法是让main方法在视图中调用一个方法来打印出选项(即按1登录,2按退出)。然后,根据用户选择的选项,它将转到相关控制器中的方法。但是,视图将依赖于所有控制器 - 我不知道这是不是很糟糕的做法?因为那时视图负责调用其他东西,但这应该是控制器的工作吗?

如果main方法首先调用控制器,我想我必须要有某种超级控制器才能启动所有控制器?

E.g。 主方法调用supercontroller中的句柄 它在视图中调用mainMenu,它返回所选的选项 如果返回的选项是login,那么supercontroller的句柄会调用logincontroller的登录方法吗?

赞赏任何帮助或指导。

2 个答案:

答案 0 :(得分:0)

使用MVC构建UI时,首先要调用控制器。控制器是游戏中唯一知道/看到一切的人。因此,控制器然后创建视图,初始化视图,甚至可能创建模型,将模型附加到视图并设置视图工作的所有内容。

当用户输入数据时,控制器被调用(或者更确切地说是控制器上的方法),它会更新模型并可能更改视图。

父控制器可用于从更简单的MVC组件构建复杂系统。

答案 1 :(得分:0)

我的猜测是,当你调用main方法时 - 它应该调用控制器方法。调用哪种控制器方法取决于您的应用程序逻辑,即用户第一次访问您的应用程序时的第一个操作。在MVC中,模式控制器负责决定显示哪个视图,因此主要的入口点应该是控制器。