我正在尝试使用以 MS SQL Server 作为后端的 Swing 和 MVC 设计模式来实现一个小型应用程序。该应用程序从一个简单的登录表单开始。应用程序的用户也有两种角色。
- 管理员:可以创建、删除、修改、查看所有用户以及应用程序提供的所有功能。
- 应用程序用户:只能使用应用程序提供的功能。
我正在考虑为每个角色设置两个单独的框架,即 UI。
主登录表单/GUI 充当视图,具有使用观察者模式注册视图的登录控制器类。按钮注册事件,控制器侦听,调用适当的 DAO 以连接到数据库并验证用户是否可以登录到应用程序。登录的存储过程返回access_role,即管理员、应用程序用户、未知用户或未经身份验证的用户,通过DAO返回给登录控制器。
我想保持尽可能低的耦合,因此使用观察者模式分离关注点和 MVC 设计。
现在我的问题是,
- 登录控制器是否应该根据返回的 access_role 来决定显示应用程序用户 UI 或管理员 UI,还是应该将该信息传递回应该初始化相应 GUI 的登录 UI?
- 如果登录控制器应该决定启动哪个 UI,那么它还需要为相应的 GUI 设置所有侦听器吗?这是一个好的设计决策还是有更好的方法呢?
- 如果登录控制器将 access_control 传递回登录表单,那么登录表单必须为新 GUI 初始化所有侦听器并实例化新 GUI?这比控制器做的更好吗?
- 管理员和应用程序用户的 UI 应该是 JFrame 还是 Dialogs ?
希望听到您对此的看法。
最好的问候, 卡希夫汗