MessageService和MessageDao这两个类重合了吧?

MessageService和MessageDao这两个类重合了吧?


 public List<Message> getMessages(int page,int pagesize){
    return messageDao.getMessages(page, pagesize);
   }

既然在MessageService中调用getMessage方法,那就不需要再MessageDao中定义一个相同的getMessage方法了吧,感觉有点多余。甚至可以不用定义MessageDao这个类,把MessageDao中的计算留言数量的countMessages()方法也放到MessageService中来,这样不行吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
一叶知秋519 2018-05-29 18:26:28

就单个题目而言,这样做是可以的;但是不建议这么完成,不符合我们常规的编程思想:

dao层:dao层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查

service层:service层叫服务层,被称为服务,使用service层的几点好处: 
service实现类:也顾名思义,service实现类实现了service接口,进行具体的业务操作。在java中接口是多继承的,而类是单继承的,如果你需要一个类实现多个service,你用接口可以实现,用类定义service就没那么灵活;要提供不同的数据库的服务时,我们只需要面对接口用不同的类实现即可,而不用重复地定义类;编程规范问题,接口化的编程为的就是将实现封装起来,然调用者只关心接口不关心实现,也就是“高内聚,低耦合”的思想;此处需要有这么个思想就可以了。

祝学习愉快!

  • 提问者 liqihang #1
    请问老师,本届课程为什么不用MVC的开发思想呢, 将关于数据访问数据存储,数据处理的代码都写进bean中,也就是模型层,这样岂不更简便?另外,service接口是什么东西?本届课程中service类并没有实现某个接口啊,
    2018-05-29 20:45:21
  • 好帮手慕珊 回复 提问者 liqihang #2
    这个就是MVC的开发思想,只不过划分更细致一些,引入了Service层,这种设计是开发中非常常见的设计方式,对于大型项目,都要有接口,这里的功能比较简单,老师就没有设计接口,直接使用类实现的。DAO就是模型层,是专门进行数据处理的模型层,Service层中还会进行一些和业务相关的逻辑的处理,如果逻辑比较简单,一般就是在Service中直接调用DAO的方法。这个随着后面学习的深入,会有更多的体会。
    2018-05-30 10:10:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师