首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串或Employee对象作为参数传递

将字符串或Employee对象作为参数传递
EN

Stack Overflow用户
提问于 2012-12-24 15:00:57
回答 2查看 740关注 0票数 0

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

代码语言:javascript
复制
getemployeeService().findEmployees(qData);

qData只是一个用于传递延迟负载load方法的参数的类。

代码语言:javascript
复制
EmployeeQueryData qData = new EmployeeQueryData(start, end, sortField, order, filters);

我想将一个for参数传递给DAO类中的findEmployees方法,用于根据deptNo获取员工。

我的疑问是我是否应该传递另一个参数,比如

代码语言:javascript
复制
getemployeeService().findEmployees(qData, String deptNo);

或者将Employees类作为

代码语言:javascript
复制
getemployeeService().findEmployees(qData, Employees emp);

在DAO中,我以emp.getDeptNo的身份调用deptNo

最好的方法和实践是什么?任何建议和见解都是非常值得欣赏的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-24 15:09:09

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

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

票数 1
EN

Stack Overflow用户

发布于 2012-12-24 15:04:53

这两种方法各有优缺点,但是您应该考虑程序的业务需求更改的可能性有多大。

例如,如果在将来的需求中有一个变更,说“我们不仅应该通过他/她的depno来定位员工,还应该通过他/她的employeeId来定位员工”,那么第二种方法将使您更容易实现该更改。对于第一种方法,您必须更改findEmployees方法的每次调用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14018159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档