我有一个带有DAOManager的类的设置,以及我需要与之交互的表的单独DAO类。当我想从DB插入或删除对象时,验证对象是必要的。我应该验证DAOManager类或特定DAO类中相应方法中的对象吗?当然也可以在调用DAOManager之前验证对象。哪个选项最好?
public class DAOManager {
public void insertIntoTable(Object obj) {
//Validate here?
exampleDAO.insert(Object obj);
}
}
public class ExampleDAO() {
public void insert(Object obj) {
//Or validate here?
//Insert logic...
}
}
答案 0 :(得分:1)
我会选择使用方法validateOnInsert(),validateOnDelete(),...创建一个抽象类“ObjectValidation”的选项。
你所有的单个DAO应该实现该类并将特定逻辑添加到验证中,如果你只是不需要验证你的DAO返回true并继续管理器进程。
public class ExampleDAO() extends DAOValidation{
public void insert(Object obj) {
if(validationOnInsert(obj)){...}
}
public boolean validateOnInsert(Object obj) {
//your validation here
}
public boolean validateOnDelete(Object obj) {
//your validation here
}
}
可能不同的人有不同的方法来解决它,但我认为DAO是应该了解类本身的所有业务逻辑的类,管理者应该只是作为向DAO请求操作的分销商