我正在java swing
开发一个软件项目。我想遵循MVC
设计模式,以获得更好的可维护性,可移植性和可靠性。我在互联网上查看了MVC in Swing
,发现了一些像THIS这样的好结果
,THIS,THIS,THIS,THIS以及更多( youtube )并对其进行了研究。然后我基于MVC
设计模式为我的项目构建了一个设计架构。这是模拟我的实际要求的结构:
这里有关于架构的一点描述
- 主控制器:负责初始化和启动应用程序。它初始化
的可查看组件MainView
和其他一些子控制器,如StudentController
,TeacherController
。它包含一些方法,例如getStudentView()
,getTeacherView()
,可提供学生TAB
,教师TAB
至MainView
- 主视图:主视图
JFrame
包含JTabbedPane
,MainController#getXXXView()
使用tabs
在XXX
中显示视图。 (此处Student
可以由Teacher
,Main Controller
或StudentView
提供的任何其他可见组件替换- 学生控制器:它控制
Student
和Student model interface
模型以及Student View
。它初始化Main Controller
并将此视图提供给Main View
,这进一步提供了JPanel
的视图- 学生视图:
JTable
包含JButton
以显示学生信息,add Student, Edit, delete
包含name
等。- 学生:学生模型类包含
rollNo
,Student
等字段,用于存储学生信息。- 学生模型界面:是服务层。它需要一个
Student Viewable Model
参数并将其发送/添加到Student Database Model
并使用TableModel
存储到数据库中。- 学生可见数据模型:
JTable
用于定义Student View
中的Student Controller
- 学生数据库模型:包含在数据库中存储/检索学生信息的方法
- 教师控制器,就像
Student Controller
一样,除了它控制教师相关的任务。- 其他控制器:代表许多
Teacher Controller
类控制器
注意 Student Controller
和其他控制器具有与Teacher Controller
相同的层次结构。这些控制器访问其模型和视图。对于例如Teacher View
有Teacher
,Teacher Model Interface
和Main Controller
项目的工作
首先Main View
初始化sub-controllers
和所有Student Controller
并启动应用程序。
ActionListener
实施Student View
并在Student View
中发生事件时执行。它负责添加,编辑,删除学生信息。它从Student
获取信息,包装在Model Interface
对象中并将其传递给Student
Student Database Model
对象传递给Model Interface
,它存储/更新/删除数据库中的数据。如果成功,则Student Viewable data model
更新Table Model
这是反映Student View
所以我的问题是它是否适用于这种应用程序,如果不是,那么我应该怎么做。如何改进设计以获得更好的可维护性和可靠性可移植性。有哪些建议
我认为这是一个直接而严格的问题,但我无法做得更好。