【发布时间】:2021-05-07 17:02:58
【问题描述】:
我正在为一个 Java 项目练习 MVC、DAO 和其他设计模式。
假设我有一个与 Student 类模型交互的 PageController。
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
//Getters and setters blabla
}
然后我显然有一个 StudentDAO 接口和 StudentDAOImpl 来执行 SQL 查询和东西。
假设 PageController 需要检索所有学生的列表(在其页面上列出它们),显然我有一个 SQL 查询来检索学生列表,使用 StudentDAOImpl 中的 Java 方法实现。
我应该在哪里实例化 studentDao(StudentDAOImpl 的实例)? 我可以简单地在 Student 中创建一个静态方法来检索所有学生吗?此静态方法将简单地实例化 studentDAO 并执行其 getAllStudents 方法来检索所有学生。
或者我可以简单地在 PageController 中实例化 studentDao 并从那里做所有的事情?
【问题讨论】:
-
哪种方式最有效地满足您的特定需求?
-
@RobertHarvey 我真的不知道,这些选项都没有真正限制我的可能性,但我不知道将 Dao 实例放在控制器中有多正确。或者要在 Student 中创建一个执行 getAllStudents() 的静态方法,我实际上更喜欢第二种方法,因为我可以将所有 Dao 的东西放在我项目的 Model 部分中。
-
“正确”的标准是什么?
-
如果您更喜欢第二种方法,请使用它。
-
@RobertHarvey 正确我的意思是“遵循 MVC/DAO 模式”我猜
标签: java class model-view-controller static dao