使用java swing进行软件开发的MVC

时间:2017-11-06 18:37:40

标签: java swing model-view-controller

我正在java swing开发一个软件项目。我想遵循MVC设计模式,以获得更好的可维护性,可移植性和可靠性。我在互联网上查看了MVC in Swing,发现了一些像THIS这样的好结果 ,THISTHISTHISTHIS以及更多( youtube )并对其进行了研究。然后我基于MVC设计模式为我的项目构建了一个设计架构。这是模拟我的实际要求的结构:

image

这里有关于架构的一点描述

  
      
  • 主控制器:负责初始化和启动应用程序。它初始化MainView和其他一些子控制器,如StudentControllerTeacherController。它包含一些方法,例如getStudentView()getTeacherView(),可提供学生TAB,教师TABMainView
  • 的可查看组件   
  • 主视图:主视图JFrame包含JTabbedPaneMainController#getXXXView()使用tabsXXX中显示视图。 (此处Student可以由TeacherMain ControllerStudentView提供的任何其他可见组件替换
  •   
  • 学生控制器:它控制StudentStudent model interface模型以及Student View。它初始化Main Controller并将此视图提供给Main View,这进一步提供了JPanel的视图
  •   
  • 学生视图JTable包含JButton以显示学生信息,add Student, Edit, delete包含name等。
  •   
  • 学生:学生模型类包含rollNoStudent等字段,用于存储学生信息。
  •   
  • 学生模型界面:是服务层。它需要一个Student Viewable Model参数并将其发送/添加到Student Database Model并使用TableModel存储到数据库中。
  •   
  • 学生可见数据模型JTable用于定义Student View中的Student Controller
  •   
  • 学生数据库模型:包含在数据库中存储/检索学生信息的方法
  •   
  • 教师控制器,就像Student Controller一样,除了它控制教师相关的任务。
  •   
  • 其他控制器:代表许多Teacher Controller类控制器
  •   

注意 Student Controller和其他控制器具有与Teacher Controller相同的层次结构。这些控制器访问其模型和视图。对于例如Teacher ViewTeacherTeacher Model InterfaceMain 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
  • 中的更改的{{1}}

所以我的问题是它是否适用于这种应用程序,如果不是,那么我应该怎么做。如何改进设计以获得更好的可维护性和可靠性可移植性。有哪些建议

我认为这是一个直接而严格的问题,但我无法做得更好。

0 个答案:

没有答案