日期:2014-05-17  浏览次数:20751 次

TeacherService的业务层代码里加入StudentDao合理吗?
数据库里有两张表,一个是学生表(student),一张是教师表(teacher),一个教师可以对应多个学生,有外键关联的关系。
现在有个需求,当在数据库里查出教师表的时候,需要同时查出其对应的所有学生。
在业务层,我是这样设计的,请看代码:
class TeacherService {
    private TeacherDao teacherDao = new TeacherDao();
    private StudentDao studentDao = new StudentDao ();
    public Teacher findAll() {
        //...
    }
}

以上代码我运行起来是没有问题的,但我的疑问是:
TeacherService业务层里一般只有TeacherDao的引用,现在我又写多了一个StudentDao,虽然也可以查找出需要的数据来,但是这样设计合不合理?
因为一般TeacherService里只会有TeacherDao,而在StudentService里才会有StudentDao,而现在我把两个Dao都写在一个教师的业务类里,好像没有人会这样写吧?
请问这样写合符开发的规范吗?
谢谢!

------解决方案--------------------
老师对学生进行操作。貌似没什么不合理的。
当然,TeacherService里面调用StudentService(StudentService调用StudentDao)更合适一些。
一个service有多个dao也是可以的。

------解决方案--------------------
业务操作,没有规定必须只用一个dao。灵活简单为主
------解决方案--------------------
service没规定就只能对一张表操作。