您的位置:首页 > 运维架构 > 网站架构

软件体系架构——分层的三层架构学习总结

2015-03-04 23:24 239 查看
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构,众多开发者一致推荐的分层式结构一般分为三层,即三层架构,这三层从下到上分别是:三层架构分为:数据访问层(Data
Access Layer,简称DAL)、业务逻辑层(Business Logical Layer,简称BLL)、表现层(User Interface,简称UI)。有时候,简单的三层架构在面临用户的各种需求经常变化时耦合度还是偏高,需要继续解耦。这样就产生了工厂模式三层架构,如此以来,当需求变动时,开发人员只需在代码层替换数据访问层,而业务逻辑层不受影响。三层架构如下图所示:



  三层架构的优点是能让项目更容易修改、更有扩展性、更有复用性、可迁移、刚开始是为C/S模式而开展的,后来慢慢扩展到B/S模式。三层架构并不能提高项目的运行效率,相反由于表现层只能访问逻辑层,再逻辑层访问数据访问层,因此牺牲了效率。但这一缺陷比起它的优势,在现在硬件品质高速发展的时代几乎可以忽略不计。

  三层架构能提高数据库访问效率和安全性,原因有三:

  1、数据层不包含任何代码,只有数据库,还有相关的存储历程。

  2、数据层还包含所有公共数据造访代码。

  3、所有数据读取都放在数据层。

  在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。

  数据访问层(DAL):也可称为持久层,其功能主要是负责数据库的访问。在PetShop中处理的数据库对象分为两类:一是数据实体(Model),对应 数据库中相应的数据表,他们没有行为,仅用于表现对象的数据;二是数据的基本业务操作,即完成一般的数据操纵,这部分采用了抽象工厂模式,即保证了系统的 可扩展性,同时也保证了数据库的可移植性。

  业务逻辑层(BLL):是整个系统的核心,它与这个系统的业务(领域)有关。以PetShop为例,业务逻辑层的相关设计,均和网上宠物店特有的逻辑相关, 例如查询宠物,下订单,添加宠物到购物车等等。也许是业务逻辑比较简单地缘故,在业务逻辑层的设计中,PetShop并没有秉承在数据访问层中面向接口设计的思想。

  除了完成对插入订单策略的抽象(IBLLStrategy)外,整个业务逻辑层仅以BLL模块实现,没有为领域对象定义抽象的接口。因而 PetShop的表示层与业务逻辑层就存在强依赖关系,如果业务逻辑层中的需求发生变更,就必然会影响表示层的实现。

  表示层:是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: