DAOManager - 对象验证应该在这里还是在特定的 DAO 类 中完成?
DAOManager - should object validation be done here or in the specific DAO classes?
我有一个带有 DAOManager 的 classes 的设置,并为我需要与之交互的表设置了单独的 DAO classes。当我想从数据库中插入或删除一个对象时,有必要验证这些对象。我应该在 DAOManager class 或特定 DAO classes 中的相应方法中验证对象吗?当然也可以在调用 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...
}
}
我会选择使用方法 validateOnInsert()、validateOnDelete()、...
创建抽象的选项 class "ObjectValidation"
你所有的单个 DAO 都应该实现 class 并将特定逻辑添加到验证中,如果你只是不需要验证你的 DAO return 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 是 class,他应该了解 class 本身的所有业务逻辑,Manager 应该充当向 DAO 请求操作的分发者
我有一个带有 DAOManager 的 classes 的设置,并为我需要与之交互的表设置了单独的 DAO classes。当我想从数据库中插入或删除一个对象时,有必要验证这些对象。我应该在 DAOManager class 或特定 DAO classes 中的相应方法中验证对象吗?当然也可以在调用 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...
}
}
我会选择使用方法 validateOnInsert()、validateOnDelete()、...
创建抽象的选项 class "ObjectValidation"你所有的单个 DAO 都应该实现 class 并将特定逻辑添加到验证中,如果你只是不需要验证你的 DAO return 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 是 class,他应该了解 class 本身的所有业务逻辑,Manager 应该充当向 DAO 请求操作的分发者