0

ManagedBeanから次のように呼び出すメソッドがあります

getemployeeService().findEmployees(qData);

qDatalazyloadloadメソッドのパラメータを渡すためのクラスに他なりません。

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

findEmployeesに基づいて従業員を取得するために、DAOクラスのメソッドにパラメーターの1つを渡したいと思いますdeptNo

私の疑問は、次のような別のパラメータを渡す必要があるかどうかです

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

または、Employeesクラスを次のように渡します

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

そしてDAOでは私deptNoemp.getDeptNo

最善のアプローチと実践は何ですか?どんな提案や洞察も非常に高く評価されます。

4

2 に答える 2

1

どちらのアプローチにも長所と短所がありますが、プログラムのビジネス要件がどの程度変化する可能性があるかを考慮する必要があります。

たとえば、将来、「従業員を自分のdepnoだけでなく、employeeIdでも特定する必要がある」という要件に変更があった場合、2番目のアプローチにより、変更の実装が容易になります。最初のアプローチでは、findEmployeesメソッドのすべての呼び出しを変更する必要があります

于 2012-12-24T07:04:52.777 に答える
1

合格部門の方が理にかなっていると思います。DAOレイヤーと言うときは、データを処理する必要があるという観点でのみ見るからです。ビジネスロジック層にemp.getDeptNo()を含める必要があります。

しかし、拡張性について話すと、将来、dept、DOJなどの他のパラメータを送信したい場合があります。したがって、その場合は、Criteriaなどの別のクラスを作成し、そのクラスにparamsフィールドを配置して、このクラスのObjectをfind()メソッドに渡すことができます。

于 2012-12-24T07:09:08.880 に答える