三层架构

三层架构

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Visual Studio 2017

作者:李成富

撰写时间:2019年7月22日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

什么是三层?

  1. UI(表现层):主要是指与用户交互的界面。
  2. BLL(业务逻辑层):UI层和DAL层之间的桥梁。
  3. DAL(数据访问层):与数据库打交道。
  4. Entity(实体层):它不属于三层中的任何一层,但是它是必不可少的一层。

它在三层架构中的作用:

  1. 实现面向对象思想中的“封装”;
  2. 贯穿于三层,在三层之间传递数据;
  3. 每一层(UIàBLLàDAL)之间的数据传递(单向)是靠变量或实体作为参数来传递的,这样就构造了三层之间的联系,完成了功能的实现。

 

三层以及实体层之间的依赖关系:

也就说他们各负其职,服务员不用了解厨师如何做菜,不用了解采购员如何采购食材;厨师不用知道服务员接待了那位客人,不用知道采购员如何采购食材;同样,采购员不用知道服务员接待了那位客人,不用知道厨师如何做菜。

 

三者如何联系的?

生活中的服务员、厨师和采购员,他们各负其职,谁也不影响谁。

比如:厨师会做:番茄炒蛋、炒面、梅菜扣肉-----此处构建三个方法(CookEgg()、CookNoodle()、CookPork())

顾客直接和服务员打交道,顾客和服务员(UI层)说:我要一个番茄炒蛋,而服务员不负责番茄炒蛋,她就把请求往上递交,传递给厨师(BLL层),厨师需要番茄和蛋,就把请求往上递交,传递给采购员(DAL层),采购员从仓库里取来番茄和蛋传回给厨师,厨师响应CookEgg()方法,做好番茄炒蛋后,又传回给服务员,服务员把番茄炒蛋呈现给顾客。这样就完成了一个完整的操作。

在此过程中,番茄和蛋作为参数在三层中传递。

 

为什么使用三层?

使用三层架构的目的:解耦

  1. 服务员(UI层)请假------另找服务员;厨师(BLL层)辞职-------招聘另一个厨师;采购员(DAL层)辞职-------招聘另一个采购员;

任何一层发生变化都不会影响到另外一层。

 

三层与两层的区别?

 

两层:

当任何一个地方发生变化时,都需要重新开发整个系统。“多层”放在一层,分工不明确耦合度高-------难以适应需求变化,可维护性低、可扩展性低

 

三层:

发生在那一层的变化,只需更改该层,不需要更改整个系统。层次清晰,分工明确,每层之间耦合度低-----提高了效率,适应需求变化,可维护性高,可扩展性高

 

三层架构的优势:

  1. 结构清晰、耦合度低
  2. 可维护性高,可扩展性高
  3. 利于开发任务同步进行,容易适应需求变化

 

三层架构的优劣势:

  1. 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
  2. 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在 表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在 相应的业务逻辑层和数据访问层中都增加相应的代码。
  3. 增加了代码量,增加了工作量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值