文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

软件架构模式—分层架构

2024-11-30 13:15

关注

这种架构模式有四个层,每个层中的模块性和组件之间都有连接。从上到下,它们分别是:

展示层:包含与展示相关的所有类别。

业务层:它包含业务逻辑。

持久层:用于处理对象关系映射等功能

数据库层:存储所有数据。

在这种情况下,各层是封闭的,也就是说请求必须从顶部到底部经过所有层。这样设计有两个原因,一个是将所有"相似"的组件放在一起,另一个原因是提供层次的隔离。

进一步说明,将“相似”的组件放在一起意味着与某个层相关的所有内容都保留在该单一层中。这样可以清晰地区分各种组件,并且有助于将相似的代码集中在一个位置。通过隔离各层,它们相互之间变得独立。因此,例如,如果我们想将数据库从Oracle服务器更改为SQL服务器,这将对数据库层产生重大影响,但不会影响其他层。同样,假设您有一个自定义的业务层,并且想要将其更改为业务规则引擎,如果我们有一个良好定义的分层架构,这种更改不会影响其他层。

分层架构模式可以在所提及的层级之外进行修改,增加其他层级。这被称为混合分层架构。例如,在业务层和持久化层之间可以添加一个服务层。然而,这并不是理想的设计,因为现在业务层必须经过服务层才能到达持久化层。这个请求通过服务层并没有任何价值。我们称之为架构陷阱反模式。请求经过各层时,在每个层中几乎没有或没有执行任何逻辑。

唯一解决这个问题的方法是将可选的层级设置为开放层。这意味着如果可选的层级对发送的请求有任何增值作用,请求就会经过该层级。如果没有增值作用,请求将直接绕过该层级,进入相关的下一层级。在上图中可以看到这种情况,请求绕过了服务层,从业务层直接进入持久化层。

然而需要注意的是,通过设置开放层,我们削弱了层级之间独立的好处。如果我们想替换持久化层,就必须考虑到开放的服务层和业务层。这两个层级现在都与持久化层耦合在一起。因此,虽然向系统中添加开放层非常容易,但我们不允许这种情况发生。我们必须在不损害架构的情况下解决问题。

结论

分层架构是最简单的软件架构模式。如果要设计一个基本的应用程序,用户数量很少(<100-200),并且在投入使用后不会有太多的需求变化,那么这是最好的软件架构模式。与其他模式相比,这种架构模式的实现成本非常低。

以下是分层架构模式的优劣分析。

优点

这种架构模式易于测试,因为组件属于特定的层级。因此,它们可以单独测试。

由于大多数应用程序自然而然地按层级工作,所以这种架构模式简单易实现。

缺点

尽管可以对特定层进行更改,但这并不容易,因为应用程序是一个单一的单元。而且,层之间的耦合关系往往会增加难度。这也使得扩展变得困难。

它必须作为一个单一的单元部署,因此对特定层的更改意味着整个系统必须重新部署。

它的规模越大,请求经过多个层级所需的资源就越多,从而导致性能问题。

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯