大家好,又见面了,我是全栈君。
三层(3-tierapplication)
什么是三层?
首先要知道三层不是一项实际的技术、他是一中设计软件的思想、这样的思想就是把软件分为三层、或者说三个类、各自是表现层(UI)、业务逻辑层(BLL)、数据訪问层(DAL)、分层的目的是为了高内聚,低耦合、便于更改维护、当然软件业能够分四层、五层、六层、这主要看需求、可是一般的都是分为这三层。
每一个层各司其职、相互仅仅是调用关系、这样优点就是假设要更改界面、那就改UI层、其它层都不用动、或者以后软件换数据库、那么该DAL层就好、事实上生活中都是这样的思想、手机屏幕坏了?换块屏幕、能够接着用、电脑系统死了、装系统接着用、灯泡坏了、换个灯泡、这些事实上都是面向对象思想、分层思想、事实上本质就是降低联系、做到可更换、不用一点坏了就要换所有、分层就是这样的思想。
各层功能
1、表现层(UI):通俗讲就是展现给用户的界面,他担当者接受用户信息和给用户显示用户信息的功能。即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对详细问题的操作。也能够说是对数据层的操作。对数据业务逻辑处理、最明显的就是三大语句、推断、循环、多分支、这个一定是在逻辑层的。
3、数据訪问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、改动、更新、查找等。
为什么分三层
你为啥一天三顿饭?由于一天三顿刚刚好、不会饿着也不会撑死、经过前辈们的实验、软件划分三层是最理想的、最通用的、当然事事无绝对、不是全部软件都分三层的。
如:
1 软件太小
你做个非常小的软件还分三层?太小了就不是必需了、还有就是要求速度特别快的
2 要求快速
由于三层的关系、会导致执行比不分三层慢、当然也能够升级硬件加速、更快的CPU(以下会解说原因)
3 特殊需求
特殊需求的软件分两层或多层这都是有可能的、没有一种能应对全部问题的思想或答案、对吧、三层不是万能的
三层的逻辑关系
三层相对独立、他们之间引用来完毕任务,UI 引用BLL、BLL引用DLL、DLL訪问数据库、事实上数据库也应该算一层、可是数据库如今都有现成的、如SQL数据库等、也就相当这层已经做好了、如图
样例
以下就拿登陆窗口做个样例
这三层的联系事实上就是引用、通过引用、来传值、互相协作完毕一个功能、而又相互独立、每层仅仅完毕自己那层的功能。
说道传值、大家看登陆窗口这个样例、username和password每一次才层都要用、这是公用数据或说是參数、可是假设非常多參数怎么办???
model
假设三层是板砖、那model就是水泥、假设三层是饼干、他就是夹在中间的奶油、model事实上就是帮助三个层传递參数用的、他被三层引用、如上面的样例、把username和password放到model里是不是就好多了、打个例如。
咱们如今工厂都是流水线作业、比方安装电脑、分3部分、安装显示屏、安装主板、安装软件、第一个人安装好显示屏、会有传送带把电脑送到第二个人那、第二个人安好主板、放到传送带上、传送带也会运到第三个人那、假设没有传送带是不是每一个人都要跑过去送?
model就是那个传送带、把每一层的參数保存、然后其它层引用model这个类、或者说公用层、事实上说什么呢并不重要、重要的是了解model究竟是起到了什么作用。
三层的优缺点
长处:
1.解耦。上一层仅仅依赖于下一层,假设測试下一层没有问题。那么问题就仅仅可能出如今本层了。便于发现和改正BUG。
2.简化复杂问题。就比方tcpip协议的四层模型或OSI七层模型,各层分工明白,将一个复杂问题简化了。
3.便于系统维护/升级。
各层间通过接口解耦,接口与实现分离,从而能够很方便的替换掉实现,或者升级实现等。
4.逻辑复用。比如原来基于B/S开发的程序如今要改成C/S,那么仅仅要业务层的接口没有改变,那么业务层和数据层都能够直接复用。在如,仅仅要数据訪问层接口不变。那么使用便能够有对不同数据库的实现。
5.便于团队开发。仅仅要各层接口在开发前规定好,那么各层能够独立开发。进化或维护。
6.方便部署。将各层开发成组件。则能够独立部署。
缺点:
1、减少了系统的性能。这是不言而喻的。假设不採用分层式结构,非常多业务能够直接造訪数据库,以此获取对应的数据,现在却必须通过中间层来完毕。
2、有时会导致级联的改动。这样的改动尤其体如今自上而下的方向。假设在表示层中须要添加一个功能,为保证其设计符合分层式结构,可能须要在对应的业务逻辑层和数据訪问层中都添加对应的代码
3、添加了代码量,添加了工作量
三层的使用
事实上三层详细怎么写代码这不重要、由于三层本身是一种思想、C#可用VB.NET能够用、其它语言也能够用、就好像电脑分显示屏、主板、软件、手机也能够分显示器、主板、软件、遥控器能够分电池和遥控器本身、这样的思想就是使每一个个体的功能独立、达到课复用、easy更换、改动的目的。
什么时候用三层?在软件上说、假设你的程序到达了一定的复杂程度、就能够分三成、假设你的软件非常easy就不是必需分三层、就好像你写字就三行、你还要分好几个段落、那叫没事找事、你出了一本书、一本书就一段、那叫没事找抽= =!
所以说不要畏惧啥时候用啥时候不用、功到自然成。
总结:
事实上世间万物都是息息相关的、三层事实上就是生活中的一个抽象的概念、在各个领域都有应用、仅仅是在软件这个行业、他叫三层这个名字、这次学习三层让我对软件又有了新的认识、对制作软件流程更加清晰、路是一步步走的、不知大家还记的第一次学编程写的那句话吗?
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116133.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...