web框架中的controller、service层、dao层、logic层的联系与作用

说下个人目前在用的分布

Controller:接受Web请求,分发调用不同的逻辑或服务完成一项事情,返回数据
service:做些服务Api接口相关的代码
dao:和数据库打交道(对表进行增删改查)
logic:自己的业务逻辑相关

现在有个PC注册账号的功能
1:初始阶段,controller收到请求,直接在controler里面写数据库连接,进行增删改查,没毛病,可以运行。

2:慢慢发展,功能多了,Controller多起来了,contoller到处都是sql和数据库打交道的代码,虽然不影响运行,但是有时候发现,如果我要修改一个数据表的字段或其他东西,得到好几个Controller里面去找相同的一个代码并修改,太麻烦了,干脆都放到一个里面,全部对增删改查从同一个地方多好,这时候出现了dao层。

3:继续发展,进军移动端,有了手机注册的功能,简单,写呗,写着写着发现,我去,怎么和PC注册功能这么像?都要校验用户信息->判断数据库有无重复->插入数据库(重复的业务功能在几个控制器都要被重复使用),有了第二步的经验,把这些相同的业务操作抽离放到一起呗,出现了logic层(logic层负责做些处理并调用dao层完成数据的入库等和数据库打交道的事情),RegisterLogic,规定所有的注册功能都走这一个逻辑了,维护更加方便了,以后即使增加一百种注册方式,只要 new RegisterLogic()->register();就行了。

4:继续发展下去,公司有声有色的,老板说,网站太无聊了,加点天气预报,随机推送笑话的附属功能吧,这行功能不属于自己的系统的业务逻辑,更具第二步和第三步的经验,应该单独放一个地方,没准以后其他的地方会用到,这时候service层就出现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值