//Interface DAO
public abstract class BaseDAO<T extends BaseDTO> {
public void update(T t) throws DBException {
Field[] fieldsToInsert = t.getClass().getDeclaredFields();
//code to update database object academic or event
}
public Integer create(T t) throws DBException {
Field[] fieldsToInsert = t.getClass().getDeclaredFields();
//code to create academic or event in database
}
}
//Concrete DAOs
public class AcademicDAO extends BaseDAO<AcademicDTO> {
//provide implementation
}
public class EventDAO extends BaseDAO<EventDTO> {
//provide implementation
}
//Transfer object
public class AcademicDTO extends BaseDTO {
String title;
String surname;
//getters and setters
}
public class BaseDTO {
protected Integer ID;
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
}
大家好,我有一个示例代码,它遵循上述结构来创建一个小型 Java 应用程序来管理学术和活动。它宽大地遵循这种模式
1-你们专家比我更熟悉这种模式。我想了解为什么在这种情况下使用泛型,以便 DAO 可以扩展和实现泛型基类。如果能用一个例子来说明泛型在这里的优势是多么的好,那就太好了。
2 - 我也见证了java Fields的使用。泛型和字段之间有联系吗?
我想在学术报告中记录 DAO 模式,但我发现很难理解泛型和反射场如何在这里发挥作用。它们是否支持灵活性和松散耦合?