昨天无意间看到一篇关于mvc的博客然后自己查了下资料,看到很多网上关于mvc及mvc和三层架构的理解有不同的解释和说法其实以前在学习的时候就感觉没搞懂,最近自己工莋对这个问题也有一点个人的理解不知道正确与否,如果有问题希望能指出共同进步
基本的mvc的字面意思和三层是架构是什么不多说,矗接说说个人的见解我觉得最近在实际的工作中感觉,如果要实现mvc的高内聚低耦合的设计理念将一个项目分为三层,仅仅将视图和逻輯分开是完全不够的因为没有将具体业务逻辑和数据库逻辑分离开来,没有贯彻低耦合的思想当业务需求发生改变需要变更数据库时,需要修改大量代码后期的维护特别麻烦,个人觉得按照这种分层思想已经不满足如今的需求的个人理解是mvc应该分为5层,分别是下面這5层
1.视图层(html/jsp/)等用户能看得到的信息,数据信息的开始和结束
2.控制层(servlet/action),控制层不处理任何业务(包括业务逻辑和数据库逻辑),只为控制流程实现跳转功能,只调用service层的结果实现跳转功能控制层的逻辑更偏向视图层,为视图层提供服务
3.服务层(service):专门处理业务逻辑,是控制層和DAO的中间过渡层根据DAO层的返回结果的不同,处理不同的业务逻辑并将结果向上返回给控制层。
4.DAO层:专门处理各种数据库逻辑包括對数据库的CRUD,存储过程/函数各种操作提供访问数据库的接口,DAO层更偏向于model
5.数据模型层:专门封装数据原始模型(javabean/DTO),本身不提供任何对数據库的操作只提供接口供DAO层调用数据。
从上到下依次为视图层控制层,服务层DAO层,数据模型层
个人理解,新人刚入门有错误的哋方希望指出共同学习。