专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

双向代码耦合是什么意思(用大白话告诉你什么是低耦合、高内聚)

来源:小易整编  作者:小易  发布时间:2020-05-14 12:13
摘要:模块 模块就是从逻辑上将系统分解为更细微的部分, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决。 耦合主要 描述 模块之间的关系, 内聚主要描述模块内部。模块的粒度可大可小, 可以是函数, 类, 功能块等等。 耦合 模块之间存在依赖, 导致改动可能会互相影...

模块

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

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

耦合

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

比如模块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");

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


本文地址:问答解惑频道 https://www.hkm168.com/live/291674.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


问答解惑
小编:小易整编
相关文章相关阅读
  • 祝福老师句子大全,教师节送礼必备(感恩教育恩人)

    祝福老师句子大全,教师节送礼必备(感恩教育恩人)

    祝福老师句子大全,教师节送礼必备(感恩教育恩人)教师节是每年的9月10日,这一天是我们向教育恩人表达感激之情和祝福的日子。在这个特殊的日子里,送上一句祝福老师的话语,表达我们对教育工作者的敬意和感激之情,成为了每位学生们献给老师的最好礼物。...

  • 贺知章名句赏析,诗人风采展示(品味优美诗歌)

    贺知章名句赏析,诗人风采展示(品味优美诗歌)

    贺知章名句赏析,诗人风采展示(品味优美诗歌)贺知章,唐代诗人,被誉为“豪放派”代表之一。他的诗歌生动有力,意境深远,语言通俗易懂,充满浓郁的民族气息。他留下了许多优美的诗句,让人感慨万千,不得不赞叹其诗才与风采。其中,著名的“海内存知己,天...

  • 纸飞机折法,制作简单易学(挑战手工艺术)

    纸飞机折法,制作简单易学(挑战手工艺术)

    纸飞机折法,制作简单易学(挑战手工艺术)纸飞机是一款低成本、简单易学的手工艺品,因其制作过程简单易懂,大家可以尝试在家,不需要太多专业工具。首先准备一张A4大小的白纸,将其折成一半,然后再打开,将两边的边角对齐,再次往中间折叠。在折叠的位置...

  • 中超赛程表,看球购票攻略(跟随绿茵场之旅)

     中超赛程表,看球购票攻略(跟随绿茵场之旅)

    中超赛程表,看球购票攻略(跟随绿茵场之旅)中超联赛一直以来都备受球迷关注,每个赛季都会有无数的球迷前往现场观看比赛。为了让广大球迷更好地安排自己的观赛计划,我们在这里为大家介绍一下中超赛程表和看球购票的攻略。中超赛程表中超联赛一般从3月份开...

  • 春节习俗大全,传统文化策源地(领略浓郁年味)

    春节习俗大全,传统文化策源地(领略浓郁年味)

    春节习俗大全,传统文化策源地(领略浓郁年味)春节是中国最重要的传统节日,也被称作“年节”、“新春节”等,是一个具有重大历史意义和文化内涵的节日。说到春节,就不得不提到具有浓郁地域特色和文化内涵的习俗,这些习俗既体现了中华民族的优秀文化传统,...

  • “水”字旁常用字,快速记忆方法(提高汉字识别能力)

    “水”字旁常用字,快速记忆方法(提高汉字识别能力)

    “水”字旁常用字,快速记忆方法(提高汉字识别能力)汉字是中国文化的重要组成部分,对于中文学习者而言,汉字的认识和记忆是非常重要的。其中“水”字是汉字中的一个旁常用字。在学习这个字时,我们可以采用一些快速记忆方法,提高汉字识别能力。首先,我们...

  • 做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)

    做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)

    做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)做梦时梦见很多蛇是一种比较常见的梦境,对于这种梦境的解释和分析是非常重要的。从心理学的角度来看,这种梦境不仅反映了我们潜意识中的想法和情感,也可以为我们指引未来的行动。首先,梦见很多蛇可能说明我们...

  • 制作铃声详解,打造个性化手机(表现自我风格)

    制作铃声详解,打造个性化手机(表现自我风格)

    制作铃声详解,打造个性化手机(表现自我风格)随着移动设备的普及,手机不仅是通信工具,也成为了一种个性化的表现方式。而铃声则是手机个性化中最直接的表现形式之一。制作一个个性化的铃声,不仅可以让你的手机更具有个性化的特色,同时还可以让你展现出自...

  • 周排行
  • 月排行
  • 年排行

精彩推荐