当前位置:首页 > 科技  > 软件

软件架构中的九种耦合形式

来源: 责编: 时间:2024-07-09 18:20:10 899观看
导读没有任何软件系统可以摆脱依赖关系,或者保证即使依赖组件发生变化也不会产生任何影响。软件架构师总是要处理相互连接的组件之间的依赖程度,并尽量减少甚至消除这种影响。如果软件组件 A 在如下情况下需要软件组件 B,那

没有任何软件系统可以摆脱依赖关系,或者保证即使依赖组件发生变化也不会产生任何影响。软件架构师总是要处理相互连接的组件之间的依赖程度,并尽量减少甚至消除这种影响。如果软件组件 A 在如下情况下需要软件组件 B,那么软件组件 A 就依赖于软件组件 B:ecq28资讯网——每日最新资讯28at.com

  • 运行时编译
  • 安装
  • 测试
  • 正常运行

耦合是任意架构构件之间的依赖程度。ecq28资讯网——每日最新资讯28at.com

ecq28资讯网——每日最新资讯28at.com

在不同抽象层次上,存在着不同类型的耦合。耦合不仅发生在源代码层面,还发生在基础架构以及其他方面。软件架构师需要了解这些类型,以便在设计这些组件时做出正确决定。我们将根据 ISAQB 软件架构认证课程来了解这些耦合类型。ecq28资讯网——每日最新资讯28at.com

ecq28资讯网——每日最新资讯28at.com

通过使用/委托耦合

这种耦合是经典耦合之一。基本上,如果类 A 调用类 B 的公有变量,它们就会通过使用/委托耦合在一起。最好的解决方法是将这些公有变量私有化,并通过 getter 调用它们。ecq28资讯网——每日最新资讯28at.com

通过组合耦合

在组合关系中,正如面向对象编程中所定义的,类 A 包含类 B。在某些情况下,类 B 可以是类 A 的内部部分,并不独立存在。因此,这些类通过组合关系耦合在一起。ecq28资讯网——每日最新资讯28at.com

通过构建耦合

这类耦合出现在工厂、抽象工厂等构建设计模式中。在这些设计模式中,类 A 或 B 的构建被委托给工厂类。也就是说,类 A 或 B 是通过构建与工厂类耦合的。ecq28资讯网——每日最新资讯28at.com

通过继承耦合

子类继承超类的属性和方法的一种依赖关系。通过继承产生的耦合非常严格,因为父类做什么,子类就做什么。ecq28资讯网——每日最新资讯28at.com

通过信息或事件耦合

消息传递中间件和事件存储广泛用于组件之间的松散耦合。在消息传递中,通信是异步的,发送方的请求被发送到消息队列中,接收方从队列中获取请求。发送方可能知道也可能不知道哪个接收方收到了请求,也不会立即回复。在事件处理中,想法与消息传递类似,但这里的状态变化是按时间顺序传递给监听者的。由于这种通信也是异步的,耦合非常松散,因此非常受欢迎。ecq28资讯网——每日最新资讯28at.com

时序耦合

在这种耦合中,如果 A 组件在 B 组件提供某些输出之前无法执行其工作,那么 A 组件就会暂时依赖于 B 组件。在这种耦合中,组件 A 和组件 B 不需要使用相同的编程语言或基础设施。例如,要在电商网站中购买一些商品,首先需要选择并将商品添加到购物车中。ecq28资讯网——每日最新资讯28at.com

通过数据类型耦合

根据业务需要,开发者会创建一些自定义数据类型以供进一步使用。例如,在 JPA 中创建的 UserEntity 与数据库中的 User 表相对应。因此,UserEntity 将成为软件系统中的核心数据类型,在任何需要处理用户数据的地方都可以使用。如果 UserEntity 有微小的变化,所有依赖类都会受到影响。这就是通过数据类型实现的耦合。ecq28资讯网——每日最新资讯28at.com

通过数据耦合

当组件 A 在数据库、配置文件或环境变量中持久化保存信息,而组件 B 也与之通信时,就会出现数据耦合。如果一个组件的变化通过这些耦合数据影响到另一个组件,那么很可能需要松开这些耦合。ecq28资讯网——每日最新资讯28at.com

通过硬件耦合

设想有一个物理硬件或服务器,组件 A 在内存位置写入了一些内容,组件 B 在读取这些内容时也会受到影响。这种耦合是通过硬件实现的,经常发生在底层编程中。ecq28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-99900-0.html软件架构中的九种耦合形式

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: InheritableThreadLocal 是如何实现的父子线程局部变量的传递

下一篇: 结合Spring Boot 3.x与机器学习算法优化推荐系统

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    终于,在经过了几波预热之后,一加Ace2 Pro的外观真机图在网上出现了。还是博主数码闲聊站曝光的,这次的外观设计还是延续了一加11的方案,只是细节上有了调整,例如新加入了钛空灰
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
Top