三层是什么
来源:互联网 发布:java windows api 编辑:程序博客网 时间:2024/05/21 10:24
一、前言
接触面向对象设计已经有一段段时间了,给人最大的感受就是面向对象的便利,其中的解耦让人最为印象深刻,可以说这是面向对象中的很重要的一个知识。最近接触了三层结构,其实这也和面向对象的知识紧密相连。下面就让我们进入三层的世界,看看三层是怎样体现面向对象思想的。
二、内容
(一)、什么是分层:
分层表示将功能进行有序的分组:应用程序专用功能位于上层,跨越应用程序领域的功能位于中层,而配置环境专用功能位于底层,分层从逻辑上将子系统划分成许多集合,而层间关系的形成要遵循一定的规则,通过分层,可以限制子系统的依赖关系,使得系统已更松散的方式耦合,从而更易于维护。注意:各子系统只能与同一层及其下一层的子系统存在依赖关系。
(二)、使用分层架构开发的必要性:
1、分层设计允许你分割功能进入不同区域,换句话说层在设计上就是逻辑组件的分组,例如,A层可以访问B层,但是B层不可以访问A层。
2、用分层的方法 ,以提高应用程序的可维护性,并是其更容易扩展,以提高性能。
(三)、三层内容
一直说三层,那么到底三层到包含写啥呢?三层由下至上分为数据访问层(DAL)、业务逻辑层(BLL)、表示层(UI)。如图:
他们的主要内容分别是:
(1)、表示层(UI):展现给用户的界面,及用户在使用一个系统的时候他所见所得,依据应用规模的不同,所承受的负荷会有较大的差异,另外客户 端的数目,应用的复杂程度都会对其造成一定的影响。
(2)、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。接收用户的指令或者数据输入,提交给应用层 处理,同时负责将衣物逻辑层的处理结果显示给用户,相比传统的应用方式,业务层对硬件的资源要求较低。
(3)、数据访问层(DAL):本层所做事务直接操作数据库,针对数据的增、删、改、查等操作。存储数据的数据库服务器和处理数据和缓存数据的组 件,组件将大量使用的数据放入系统的缓存库,以提高数据访问和处理的效率。
注意:业务逻辑层(BLL)是整个三层的核心内容,分层的原理就是在客户端和数据库之间加一个“中间层”,对数据的访问起到一个承上启下的作用,两 者的访问都是通过中间层进行的,不能直接联系。
(四)、三者之间的关系
显示层(UI):部署控件后,调用业务逻辑层(BLL)的类。实现功能
业务逻辑层类(BLL):调用相关的数据访问类,返回给UI层实现用户需求
数据访问层:(DAL):根据业务逻辑层(BLL)的需求直接访问数据库,实现基本操作,返回给业务逻辑层。
(五)、三层的优缺点:
优点:1、开发人员可以只关注整个结构中的其中某一层
2、可以很容易的用新的实现来替换原有层次的实现
3、可以降低层与层之间的依赖
4、有利于标准化
5、有利于各层逻辑的复用
缺点:1、降低了系统的性能,如果不采用分层是结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改,这种修改尤其体现在自上而下的方向,如果表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要相应的业务逻辑和数据访问层中间都增加相应的代码
三、总结
无论是什么样的设计方式,都没有绝对的好用和绝对的不足,咱们要做的就是根据实际情况选择适合的方式。这就是
- 三层是什么
- .net三层架构具体是什么?
- 前端页面有哪三层构成,分别是什么?作用是什么?
- 前端页面有哪三层构成,分别是什么?作用是什么?
- 浏览器页面有哪三层构成,分别是什么,作用是什么?
- 前端页面有那三层构成,分别是什么?作用是什么?
- java中的mvc和三层结构究竟是什么关系
- Java中的mvc和三层结构究竟是什么关系
- 前端面试题(7)前端页面由哪三层构成,分别是什么,作用是什么
- 三层
- 三层
- 三层
- 三层
- 三层
- 三层
- 三层
- 三层
- 三层
- velocity.js 动画插件
- Python--itertools包--groupby使用(分类)
- 如何在Ubuntu 14.04上安装与卸载PostgreSQL
- Android调用HTML中JavaScript方法报错
- java实现华为之老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
- 三层是什么
- 从jar包还原出java源码(项目文件)
- 判断空
- 用opencv3写的超详细注释的车牌检测
- HTML5 HTML 颜色
- ENUM:枚举类型
- js 实现排列组合
- 解决 UnityEditor.AsyncHTTPClient:Done
- java实现美团之已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。 从今