【发布时间】:2012-01-24 09:15:31
【问题描述】:
此时我开始研究基于 MVC 的小型 Web 应用程序。 现在我尝试使用 DAO 模式实现模型布局的主类。
所以,首先我创建了两个实体类(例如):Author 和 Book:
package myProject.model.entity;
import java.io.Serializable;
public class Author implements Serializable {
private static final long serialVersionUID = 7177014660621405534L;
private long id;
private String firstName;
private String lastName;
public Author() {
}
// getter and setter methods here
}
和书籍类:
package myProject.model.entity;
import java.io.Serializable;
public class Book implements Serializable {
private static final long serialVersionUID = 7177014660621405534L;
private long id;
private String title;
private String description;
public Book() {
}
// getter and setter methods here
}
在下一步中,我看到 Book 和 Author 类都有 getId() 和 setId()。
所以,我为我的实体类创建接口Persistent:
package myProject.model.entity;
public interface Persistent {
public long getId();
public void setId(long id);
}
所以,首先我的问题:
model 包的实现是否正确?
下一步,我开始为包 dao 实现类。
package myProject.model.dao;
import java.util.List;
import myProject.model.entity.Persistent;
public interface Dao {
Persistent get(long id);
void save(Persistent persistent);
void delete(long id);
}
下一步:创建接口AuthorDao 和BookDao,扩展基础dao interface Dao
但是两个接口:AuthorDao 和 BookDao——此时都是空的。 你怎么看 - 它在正常情况下,接口是空的?这是我的第二个问题。
在最后一步,我创建包 model.dao.hibernate 并将包添加到类 AuthorDaoHibernate 和 BookDaoHibernate - 这两个类都实现了 AuthorDao 和 BookDao 接口。
我现在的主要问题是:
我的界面Dao 使用对象类型Persistent,我不使用泛型。一切都很好。
你怎么看 - 我有什么好处,如果我重新工作Dao interface wit Generics:
package myProject.model.dao;
import java.util.List;
import myProject.model.entity.Persistent;
public interface Dao<Persistent> {
T get(long id);
List<T> getAll();
void save(T persistent);
void delete(long id);
}
我的 Dao 类仅适用于持久实体 - 没有任何其他对象类型...
你真的有任何理由在我的情况下使用泛型吗?
【问题讨论】:
标签: java model-view-controller generics interface dao