DAOManager - 应该在这里或在特定的DAO类中进行对象验证吗?

时间:2016-03-29 08:34:33

标签: java database validation dao

我有一个带有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... 
  }
}

1 个答案:

答案 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请求操作的分销商