加入收藏 | 设为首页 | 会员中心 | 我要投稿 四平站长网 (https://www.0434zz.com.cn/)- 云服务器、对象存储、基础存储、视频终端、数据应用!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

一切都交给AI,还是加点“人情味”?

发布时间:2021-02-07 13:41:05 所属栏目:外闻 来源:互联网
导读:低耦合 耦合是对某元素与其他元素之间的连接、感知和依赖程度的度量。这里的元素指类、系统、子系统等等。 问题:怎样降低依赖性,减少变化带来的影响,提高重用性? 解决方案:分配职责,使耦合尽可能低。利用这一原则评估可选方案。 相关模式或原则: GRASP

低耦合

耦合是对某元素与其他元素之间的连接、感知和依赖程度的度量。这里的元素指类、系统、子系统等等。

问题:怎样降低依赖性,减少变化带来的影响,提高重用性?

解决方案:分配职责,使耦合尽可能低。利用这一原则评估可选方案。

相关模式或原则:

  • GRASP:防止变异

注意:耦合不能脱离专家、高内聚等其他原则独立考虑。

紧密耦合的系统在开发阶段有以下的缺点:

  • 一个模块的修改会产生涟漪效应,其他模块也需随之修改(通常是内聚低引起的)。
  • 由于模块之间的相依性,模块的组合会需要更多的精力及时间,可复用性低(通常是耦合高引起的)。

解读:耦合表示元素之间存在依赖,当谈论“耦合高”时,我们具体是在谈论什么呢?是依赖产生的负面影响,所以低耦合的核心是解决不良依赖。高低是度量并不是评判耦合结果好坏的标准,使用“不良耦合”、“松耦合”描述的更为准确。不良耦合产生的负面影响主要有两点:

  • 依赖关系本身错综复杂难以维护和理解,很容易产生遗漏和问题(这点针对人,人处理复杂性事物时能力是局限的)。
  • 与不稳定元素产生依赖时很容易受到变化的影响(通常无法避免不依赖)。

那么如何做呢?先对依赖关系的好坏进行评估:依赖方式、依赖方向、依赖链路。
 

注:这个图可能总结的还不够准确,正在逐步学习修改。

三 GRASP职责分配模式

1 防止变异

该模式基本等同于信息隐藏和开闭原则。如何做到在不修改原来功能的前提下对变化的部分进行扩展?识别不稳定因素是特别困难的,也决定了我们能否做出符合开闭原则的设计。

问题:如何设计对象、子系统和系统,使其内部的变化或不稳定性不会对其他元素产生不良影响。

解决方案:识别预计变化或不稳定之处,分配职责用以在这些变化之外创建稳定接口。

相关原则和模式:

  • GRASP:间接性、多态
  • GoF:大量模式
  • 其他:接口、数据封装

2 低耦合、高内聚

耦合是对某元素与其他元素之间的连接、感知和依赖程度的度量,内聚是对元素职责的相关性和集中度的度量(这里的元素指类、系统、子系统等等),耦合和内聚是从不同角度看待问题,他们互相依赖的互相影响的(以下两点也可以反过来说):

  • 内聚过低,相关功能分散在不同模块中,需要增加额外的耦合使这些功能聚合在一起,发生变更时影响多个模块。
  • 内聚过高,不相关的功能聚集在一个模块中,耦合度高,发生变更时会产生意想不到的影响。

(编辑:四平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读