双向代码耦合是什么意思(用大白话告诉你什么

访客4年前黑客文章526

模块

模块就是从逻辑上将系统分解为更细微的部分, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决。

耦合主要描述模块之间的关系, 内聚主要描述模块内部。模块的粒度可大可小, 可以是函数, 类, 功能块等等。

耦合

模块之间存在依赖, 导致改动可能会互相影响, 关系越紧密, 耦合越强, 模块独立性越差。

比如模块A直接操作了模块B中数据, 则视为强耦合, 若A只是通过数据与模块B交互, 则视为弱耦合。

独立的模块便于扩展, 维护, 写单元测试, 如果模块之间重重依赖, 会极大降低开发效率。

到底什么是高内聚与低耦合,终于弄懂了

内聚

模块内部的元素, 关联性越强, 则内聚越高, 模块单一性更强。一个模块应当尽可能独立完成某个功能,

如果有各种场景需要被引入到当前模块, 代码质量将变得非常脆弱, 这种情况建议拆分为多个模块。

低内聚的模块代码, 不管是维护, 扩展还是重构都相当麻烦, 难以下手。

 

到底什么是高内聚与低耦合,终于弄懂了

 

接口设计原则

好的接口应当满足设计模式六大原则, 很多设计模式, 框架都是基于高内聚低耦合这个出发点的。

  • 单一职责原则:一个类只负责一个功能领域中的相应职责。
  • 开闭原则:一个软件实体应当对扩展开放,对修改关闭。
  • 里氏代换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。
  • 依赖倒转原则:抽象不应该依赖于细节, 细节应当依赖于抽象。换言之, 要针对接口编程, 而不是针对实现编程。
  • 接口隔离原则:使用多个专门的接口, 而不使用单一的总接口, 即客户端不应该依赖那些它不需要的接口。
  • 迪米特法则: 一个软件实体应当尽可能少地与其他实体发生相互作用, 例如外观模式, 对外暴露统一接口。

举几个栗子

外观模式

为系统中多个子系统提供一致的对外调用, 对客户端隐藏子系统细节, 降低其与子系统的耦合。

到底什么是高内聚与低耦合,终于弄懂了

桥接模式

JDBC中的把面向厂商的接口(Driver)和面向使用者的API(DriverManager)做了拆分隔离。

// 开发者只需要关注JDBC API, 无需关注不同数据库Driver接口实现Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection(url, username, password);

到底什么是高内聚与低耦合,终于弄懂了

适配器模式

引入第三方库(hibernate, log4j), 不应该直接在代码中继承或者使用其实体类。

需要抽出上层统一接口, 然后增加实现类, 对外暴露接口。

// 代码与log4j强耦合, 不推荐org.apache.log4j.Logger.getRootLogger().info("info");// 底层可以随意更换log框架FRLoggerFactory.getLogger().info("info");

 

到底什么是高内聚与低耦合,终于弄懂了

 

相关文章

中学附近可以做什么(小摊老板告诉你真相)

中学附近可以做什么(小摊老板告诉你真相)

招商帮:我们都知道,在学校门口做生意一般客源比较稳定,而且大多都是学生、老师和家长,消费水平也比较低,所以很适合一些初期想要创业的朋友们。相信每个人都经历过学生时期,也知道在学校门口一出来看到卖各种各...

闲鱼上二手的东西能买吗?告诉你真实的内幕

闲鱼上二手的东西能买吗?告诉你真实的内幕

一、骗子会把一些产在的照片放在网上,通常都会把一些产品的新图片放在网上,来欺骗你,让你以为这些产品都是新品,然后就吸引你去和他谈价格。这个时候你就要注意了,一般骗子会同意你提出的价格,然后给你改价格。...

冬天空调不制热怎么办?老师傅告诉你原因和解

冬天空调不制热怎么办?老师傅告诉你原因和解

1、空调常见六大问题之一:空调毛细管或者单向阀有问题 解决办法:及时更换毛细管或者单向阀,这样就能使空调再次制热了。 2、空调常见六大问题之二:室外温度过低。 解决办法:手动用工具将空调上结...

灰兔的眼睛是什么颜色?告诉你真相

灰兔的眼睛是什么颜色?告诉你真相

兔子的眼睛都是红色的吗?事实上,并不一定。不同品种的兔子,眼睛的颜色也不尽相同,有红色、蓝色、茶色等。也有的兔子左右两只眼睛的颜色不一样,白、黑、灰、棕等,这是常见的四种颜色,也有几种颜色混合的情况,...

左倾右倾什么意思,了解一下左和右到底分别是什么意思

左倾右倾什么意思,了解一下左和右到底分别是什么意思

在时事新闻中,我们经常能听到外国右翼左翼政党怎么怎么了。在我们的历史课本中也屡次提到“左倾”、“右倾”以及“左派”、“右派”等名词。这些名词都以“左”、“右”两字作为区分,意思显然相反,每个都带“...

手脚发麻怎么回事?医生告诉你原因

手脚发麻怎么回事?医生告诉你原因

相信很多人在生活中都发生过手脚麻木的情况,相比较之下,老年人往往会更容易出现。但是,如果是经常性的手脚麻木,就应当要多加注意了。 一般来说,经常性手脚麻木情况发病的原因如下: 1、周围神经因素...