在我进入MVC模式学校的一个例子中,我们有3个课程Student
,StudentView
和StudentController
。控制器具有模型的实例(在这种情况下为Student
)和控制器的实例。我遇到的问题是控制器只处理一个对象。
你显然可以有更多的学生,所以我在某个地方ArrayList<Student>
。我把它放在哪里?以及如何处理模型并查看呢?
我最初的想法是将列表放在StudentController
中,但后来我发现控制器不再是Student
的单个实例,而是列表,所以我需要分开2个控制器?一个用于Student
,另一个用于ArrayList<Student>
,称为AllStudents
?
编辑:该应用程序是一个简单的学生评分系统。学生可以跟随Coursrs,课程可以获得成绩。视图在控制台中显示学生,课程或成绩的数据。数据在程序中被硬编码(对象是“即时”制作的。)
答案 0 :(得分:0)
这是一个导致更广泛问题的问题:应用程序的其余部分做了什么?
在视图,控制器和模型之间建立1:1:1关系显然是完全可以的。你可能感兴趣的是一辆活动巴士。当感兴趣的模型发生变化时,控制器会收到通知并使用新的学生参考进行更新。
或者控制器获取整个列表,视图向控制器发送一个事件,指示应该显示与集合不同的实例。
在许多应用程序中,您将拥有主视图和详细视图。主视图显示所有学生的列表。当选择一个学生显示在详细视图中时,将调度通知/事件。这基本上是一个发布/订阅观察者/主题模型。将通知详细视图控制器并相应地显示正确的数据。
答案 1 :(得分:0)
模型不一定只是一个类,它是一个层。您的学生类在模型层中为一个域对象,现在您需要一个服务,可能还需要某种模型中的持久性/ orm。服务可以是StudentService,其中getAllStudents()等方法返回List。 StudentService可能有一个Connector实例,用于从数据库或文件中获取数据。