【三层架构】——基础知识

导言:


       三层结构是基于模块化程序设计的思想,为实现分解应用程序的需求,而逐渐形成的一种标准模式的模块划分法。 三层架构将数据层、应用层和业务层分离,业务层通过应用层访问数据库,保护数据安全,利于负载平衡,提高运行效率,方便构建不同网络环境下的分布式应用。分层的依据就是满足系统开发过程中的“高内聚、低耦合”的原则。

对比:


两层结构:

【三层架构】——基础知识_第1张图片
Web应用程序都是基于两层机构的(机房收费系统VB版),用户界面层直接与数据库进行交互,还要进行业务规则、合法性校验等工作。逻辑之间的联系太过于紧密。有如下特点:
1、数据库访问和用户类型判断逻辑放在一起实现。
2、用户界面层直接调用数据访问实现。
3、整个系统功能放在同一项目中实现。
  这种结构存在着很多的局限性,例如:一旦用户的需求发生变化,应用程序就需要大量的修改,甚至需要重新开发,给系统的维护和升级带来很多不便。为克服这类不便提出了三层结构。

三层结构:


  所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。


中间层具体解释:


【三层架构】——基础知识_第2张图片
界面层(UI):只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。设计原则用户至上,兼顾简洁。根据应用规模的不同,所承受的负荷会有较大的差异。
业务逻辑层(BLL):负责处理业务逻辑,通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理,处理完成后,返回必要数据给UI。
数据访问层(DAL):只提供基本的数据访问,不包含任何业务相关的逻辑处理。主要是增删改查的功能。存储数据的数据库服务器和处理数据和缓存数据的组件。

优点:


1、开发人员可以只关注整个结构中的其中某一层;   
2、可以很容易的用新的实现来替换原有层次的实现;   
3、可以降低层与层之间的依赖;   
4、有利于标准化;   
5、利于各层逻辑的复用。

缺点:


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

何时使用:

    对于一个简单的应用程序来说,代码量不是很多的情况下,一层结构或二层结构开发完全够用,没有必要将其复杂化,逻辑简单 没有真正的数据存储层。没有必要使用三层架构。当业务复杂,数据存储到独立的数据访问介质中。使用三层架构分离业务,实现高内聚低耦合的软件设计思想。




你可能感兴趣的:(【三层架构】——基础知识)