标签:架构 JavaWEB DAL BLL MVC UI Model 三层
MVC
- Model View Controller ———— 模型视图控制器
- 概念:经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器
- 作用:目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
View视图
- 负责页面的显示——Html、Css、Jsp、Js等前端技术实现
- 与用户的交互(提供用户操作)——鼠标点击填写表单等
Model模型
- 负责各个功能的实现(增删改查)——JavaBean实现
JavaBean分为两种
- 封装业务逻辑的javabean————Dao层:LoginDao.java
- 封装数据的javabean————pojo层:student.java
- JavaBean是一个可重复使用的组件,通过编写一个组件来实现某个通用功能
- 一次编写,任何地方执行,任何地方重用
Controller控制器
- 负责将视图与模型一一对应起来——Servlet实现
- 相当于一个分发器:接受请求,跳转(转发或重定向)到Model进行处理,处理完经过Controller到View展示
MVC过程
客户端用户——(进行人机交互【输入或点击】)——>Contorller控制层——(携带指令和数据跳转【请求转发或重定向】)——>Model模型【进行业务逻辑判断、在数据库中数据的存取】——(根据业务逻辑选择不同的视图)——>View视图层——(人机交互:将结果反馈给用户)——回到起始点客户端用户【形成闭环】
三层架构
- 三层架构就是为了符合“高内聚,低耦合”思想
- 概念:分为表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)和实体类库(Model)
- 各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。
UI表示层【User Interface layer】——WEB层
- 与用户交互的界面
- 作用:接收用户输入的数据和显示处理后用户需要的数据
BLL业务逻辑层【Business Logic Layer】——Service层
- 类似于桥梁——将UI表示层和DAL数据访问层联系起来
- 作用:实现业务逻辑(eg:调用数据库之前,处理判断数据)
DAL数据访问层【Data access layer】——DAO层
- 与数据库打交道
- 作用:存放增删改查等基本操作(SQL语句)
- 被BLL层调用
Model实体类库——POJO层(entity)
- 每张数据表对应一个实体,数据表中的每个字段对应实体中的属性
- 贯穿于三层,在三层之间传递数据
- 每一层(UI—>BLL—>DAL)之间的数据传递(单向)是靠变量或实体作为参数来传递的,这样就构造了三层之间的联系,完成了功能的实现。
三层架构过程
用户的需求反映给界面(UI),UI反映给BLL,BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户
- 对应生活中的例子
服务员————>厨师————>采购员
表示层UI————>业务逻辑层BLL————>数据访问层DAL - 过程:顾客和服务员(UI层)说:我要一个炒茄子,服务员就把请求往上递交,传递给厨师(BLL层),厨师需要茄子,就把请求往上递交,传递给采购员(DAL层),采购员从仓库里取来茄子传回给厨师,厨师响应cookEggplant()方法,做好炒茄子后,又传回给服务员,服务员把茄子呈现给顾客。
- 任何一层发生问题都不会影响另外一层
- (1)服务员(UI层)请假——另找服务员
- (2)厨师(BLL层)辞职——招聘另一个厨师
- (3)采购员(DAL)辞职——招聘另一个采购员;
优点
-
- 结构清晰、耦合度低
-
- 可维护性高,可扩展性高
-
- 利于开发任务同步进行;容易适应需求变化
缺点
-
- 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
-
- 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
-
- 增加了代码量,增加了工作量
MVC和三层架构的关系
- MVC是三层架构中的UI层
- MVC把三层架构中的UI层再度进行了分化,分成了控制器C、视图V、实体M三个部分
- 控制器完成页面逻辑,通过实体来与界面层完成通话,而C层直接与三层中的BLL进行对话。
如果硬要给他们对应的话,那么
- 三层架构中的UI对应MVC中的view(jsp)————都是用于显示以及获取界面的数据
- 三层架构中的BLL层和DAL层对应MVC中的Model(javabean)层————都是用于处理上层传递来的数据以及从数据库获取的数据的
标签:架构,JavaWEB,DAL,BLL,MVC,UI,Model,三层
来源: https://blog.csdn.net/qq_45673367/article/details/113859770
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。