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

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构,众多开发者一致推荐的分层式结构一般分为三层,即三层架构,这三层从下到上分别是:三层架构分为:数据访问层(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部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值