关于项目结构

关于项目结构

http://img1.sycdn.imooc.com//climg/5e9d9759098fe0ae04680748.jpg

老师关于项目结构,为什么要简历 dao,daoimpl,service,serviceimpl,domain,这些包呢,去百度了一下,发现他们说的我都听不懂,还有,dao和daoimpl处理这些,接口在里面就没有实质的去处理业务,或者数据呀,接口是不是只是为了后面的规范呢,因为我是做过一点php开发的,了解php的MVC,service 处理业务逻辑,所以这里目录结构太多了,加上对这些层之前的关系使用有些模糊,所以老师能不能帮我解答一下,这些层直接的关系,还有就是这些层之前这样建立的好处呢,因为网上有一些说是为了解耦,所以现在我还没有弄清楚这样分层怎么解耦的,谢谢老师

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

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

2回答
好帮手慕小脸 2020-04-21 16:51:52

同学你好,

1、是的,是正确的

2、dao作为接口,然后用daoimpl来实现,为的是后期的维护。比如:当程序完成后,过一段时间想去改变一些功能,这样我们只需要改实现类里面的代码,也就是只用改一个包下的代码,不用将这个包改一下,以及那个包里的代码还要改。如果项目很大,且代码就是成万行。用了接口的话,就起了这个作用

3、建议同学可以实践操作一下哦

4、一个具有良好封装性的代码,在构造方法里应该接入所有属性的get/set方法,因为get和set方法是为了提供给调用者使用的,调用者未必是本类的开发者,为了代码的健全是需要添加的。

5、同学理解有误,Javabean是按照一种规范书写的代表实体的Java,类中属性私有,提供get和set方法操作私有属性,提供一个无参构造函数,实现了Serializable接口。这些使其具有更好的封装性和可重用性,并且可以被序列化。这里domain下的实体类可以理解为JavaBean

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


好帮手慕小脸 2020-04-21 10:26:06

同学你好,

1、为什么要建立 dao,daoimpl,service,serviceimpl这些包呢?

因为采用的是三层架构的思想去写的代码,所以这里就使用就dao、daoimpl等包。

2、接口是不是只是为了后面的规范呢?

是的,接口的优势在于规范方法参数,返回值等

3、这些层之间的关系,还有就是这些层之间这样建立的好处呢?

    1)service层是指业务层,用来实现具体的业务逻辑。

         serviceimpl是定义接口的实现,是功能代码编写的地方,它从DaoImpl接口中得到数据

         dao层是指与数据库的交互,对数据库的增删改查操作的都在dao层完成。

        daoimpl是对dao的具体实现

     2)因为随着项目的增多,我们的代码也越来越多,为了让代码更加清晰,我们一般采用三层架构的思想去写代码:让他们各司其职:

http://img1.sycdn.imooc.com//climg/5e9e576e090e036b09080277.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 基操勿六 #1
    1.{客户端(微信端,app,api,jsp)} ----> {servlet}----->{service(service/serviceimpl(实现service的接口,调用daoimpl进行curd操作))}------>{dao(dao/daoimpl(实现dao接口,进行curd操作))},是这样的实现顺序吧老师; 2.这样的结构,接口好像没有发挥他的作用呀,关于,curd 操作,我实现dao接口也可以取数据,不实现也可以取数据,我用的是 daoimpl 呀,还有 servletimpl也可以完全不用去实现,servlet的接口呀,实现接口,他的方法要帮他去实现,是不会要麻烦一些呢,他的具体作用感觉是没有啥用,有就多一步,没有就少费事, 3.我们这个油画商城(获取分类,是不是可以直接不用servlet去转发呢,在servlet端知道他是要获取 商品分类,然后servlet就直接把 dao层 new出来,调用 findAll()方法,把所有的商品分类给servlet在前端就好了呀) 4.package com.imooc.domain; 这个包 里面都是 set***,get***,的设置属性,和取属性的,是不是在这个项目里面没有用到呢,现在感觉这个也是没有啥用呀 5.javaBean (百度上面说是java语言编写的具有 set**,get**),这样的话,是不是package com.imooc.domain 包下面的都是叫做javaBean呢,但是我好像没有感觉他的好处呀 ******************************************************************************** 老师,这些是我的疑惑点,这个项目我更着老师敲了一下,所有就感觉java的这个项目里面的疑惑点太多了,找老师解答一下才又继续学习了
    2020-04-21 11:38:14
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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