MVC架构
如果不用MVC架构,只在Servlet编写代码,会发现Servlet负责了数据接收、核心业务处理、数据库的CRUD(增查改删)、页面数据展示等等。
缺点:
- 1.代码复杂,没有进行职能分工,没有独立组件的概念,代码的复用性差。
- 2.耦合度太高,导致代码扩展力太差。
- 3.数据库的代码和业务逻辑混杂在一起,导致无法专注于业务逻辑的编写,很容易出错。
假如说一个公司有一个员工负责财务又负责人事,负责很多事情,如果这个员工生病了请假一天,岂不是这个公司停止运转一天
所以公司一般分很多工作岗位,每个岗位都由一个团队负责,假如说一个岗位出现问题,这样是不会影响整个公司的,可以调另一个负责人去代替
系统为什么要分层?
希望能够各司其职,分工明确,这样可以让代码耦合度减低,扩展力增强,复用性增强
在软件架构中,有一个非常著名的架构模式:MVC架构
MVC开发角色组成
MVC:一个老板,调度两个秘书,去做这件事
M(Model:数据/业务) V(View:视图/展示) C(Controller:控制器)
-
C(控制器老板):是核心,代表控制层
-
M(数据/业务秘书): 代表业务模型层,完成业务处理
1 dao层: (Data Access Object:数据访问对象,是javaEE的设计模式之一,注意不是23种设计模式)只负责数据库的CRUD,没有任何业务,
一般情况下,一张表对应一个dao对象。
2.bean/pojo/domain层:在dao层查询到或者需要新增数据等等,需要通过面向对象,把数据存储到java类里面,一般一张表对应一个java类。
一般这种简单的对象被称为pojo对象。
也有的人会把这种专门封装数据的对象,称为bean对象(javabean:咖啡豆)。
也有人会把这种专门封装数据的对象,称为domain对象(领域模型对象)。
3.service层: 调用dao层来完成业务实现,负责管理所调用的dao层的【事务管理】 -
V(视图/展示秘书): 代表视图层: 将处理结果写入到响应包 JSP