将String或Employee对象作为参数传递

时间:2012-12-24 07:00:57

标签: java dao

我有一个从ManagedBean调用的方法,如下所示

getemployeeService().findEmployees(qData);

qData只是一个用于传递lazyload load方法参数的类。

EmployeeQueryData qData = new EmployeeQueryData(start, end, sortField, order, filters);

我想在DAO课程中将一个for参数传递给findEmployees方法,以便根据deptNo获取员工。

我怀疑是否应该传递另一个参数,例如

getemployeeService().findEmployees(qData, String deptNo);

或将Employees类传递为

getemployeeService().findEmployees(qData, Employees emp);

在DAO中我调用deptNoemp.getDeptNo

最佳方法和做法是什么?任何建议和见解都非常值得赞赏。

2 个答案:

答案 0 :(得分:1)

这两种方法都有利有弊,但您应该考虑您的计划的业务需求发生变化的可能性。

例如,如果将来需求发生变化,说“我们不仅应该通过他/她的depno定位员工,还需要找到employeeId”,那么第二种方法将使您更容易实现变更。使用第一种方法,您必须更改find​​Employees方法的每次调用

答案 1 :(得分:1)

我认为通过部门更有意义。因为当我们说DAO层时,我们只看到必须处理数据的视角。我们应该在业务逻辑层中包含emp.getDeptNo()。

但是谈论可扩展性,如果未来你可能想要发送一些其他的参数说dept,DOJ等等。因此,在这种情况下,您可以创建另一个类,例如Criteria,并在该类中放置params字段,并将此类的Object传递给find()方法。