我有一个将从ManagedBean调用的方法,如下所示
getemployeeService().findEmployees(qData);qData只是一个用于传递延迟负载load方法的参数的类。
EmployeeQueryData qData = new EmployeeQueryData(start, end, sortField, order, filters);我想将一个for参数传递给DAO类中的findEmployees方法,用于根据deptNo获取员工。
我的疑问是我是否应该传递另一个参数,比如
getemployeeService().findEmployees(qData, String deptNo);或者将Employees类作为
getemployeeService().findEmployees(qData, Employees emp);在DAO中,我以emp.getDeptNo的身份调用deptNo
最好的方法和实践是什么?任何建议和见解都是非常值得欣赏的。
发布于 2012-12-24 15:09:09
我认为通过部门考试更有意义。因为当我们说DAO层时,我们只从处理数据的角度来看。我们应该在业务逻辑层中包含emp.getDeptNo()。
但是说到可扩展性,如果将来你可能想要发送一些其他参数,比如dept,DOJ等等。因此,在这种情况下,您可以创建另一个类,比如Criteria,将params字段放在该类中,并将该类对象传递给find()方法。
发布于 2012-12-24 15:04:53
这两种方法各有优缺点,但是您应该考虑程序的业务需求更改的可能性有多大。
例如,如果在将来的需求中有一个变更,说“我们不仅应该通过他/她的depno来定位员工,还应该通过他/她的employeeId来定位员工”,那么第二种方法将使您更容易实现该更改。对于第一种方法,您必须更改findEmployees方法的每次调用
https://stackoverflow.com/questions/14018159
复制相似问题