简单说下MVC吧,以前就被前辈教育说项目项目要分层去开发,基本的模型就是MVC,这些年来做项目,尤其是后期整合的时候,对这个分层的概念越加深入的了解,分层的最终目的:
就是为了解耦!
松耦合的结构设计,模块功能独立,功能模块化组装,项目与项目之间功能的对接,一个良好的设计模式,对项目,对以后对接来说都很重要。
前一阵子上面下来需求,要整合多个部门开发的项目的权限,也就是开发一套系统统一管理多个项目的权限。其中在到每个系统自己查询权限的时候,需要和数据库中的数据交互,没整合之前,自己项目的权限查询自己的库,整合之后自己的权限要通过接口的方式调用查询。改了一个项目,发现它数据层和业务层在一个层,业务层里耦合了很多SQL语句。
为什么要分为一个接口,一个实现类?
就是为了解耦和多实现,把需求作为接口提出来,在实现类里实现,并不是说一个接口对应一个实现,一个接口可以多个实现嘛!一个需求也可以有多个实现嘛,需要用哪个就切换到那个。业务层里写SQL语句,开发时是省事了,后期改起来维护起来,坑死人业务层里写原生SQL,甚至于写某些数据库特有的方言(例如MySQL的limit),换数据库了,你怎么改?!重写所有方言SQL语句么
项目分层、定义接口和实现都是有意义的,不能为了 一时的方便而忽略后期代码的维护工作量