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

模块
模块就是从逻辑上将系统分解为更细微的部分,分而治之,复杂问题拆解为若干简单问题,逐个解决 。
【双向代码耦合是什么意思(用大白话告诉你什么】耦合主要描述模块之间的关系,内聚主要描述模块内部 。模块的粒度可大可小,可以是函数,类,功能块等等 。
耦合
模块之间存在依赖,导致改动可能会互相影响,关系越紧密,耦合越强,模块独立性越差 。
比如模块A直接操作了模块B中数据,则视为强耦合,若A只是通过数据与模块B交互,则视为弱耦合 。
独立的模块便于扩展,维护,写单元测试,如果模块之间重重依赖,会极大降低开发效率 。

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

文章插图
内聚
模块内部的元素,关联性越强,则内聚越高,模块单一性更强 。一个模块应当尽可能独立完成某个功能,
双向代码耦合是什么意思(用大白话告诉你什么

文章插图
如果有各种场景需要被引入到当前模块,代码质量将变得非常脆弱,这种情况建议拆分为多个模块 。
低内聚的模块代码,不管是维护,扩展还是重构都相当麻烦,难以下手 。
双向代码耦合是什么意思(用大白话告诉你什么

文章插图
接口设计原则
好的接口应当满足设计模式六大原则,很多设计模式,框架都是基于高内聚低耦合这个出发点的 。
举几个栗子
外观模式
为系统中多个子系统提供一致的对外调用,对客户端隐藏子系统细节,降低其与子系统的耦合 。
双向代码耦合是什么意思(用大白话告诉你什么

文章插图

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

文章插图
桥接模式
JDBC中的把面向厂商的接口()和面向使用者的API()做了拆分隔离 。
// 开发者只需要关注JDBC API, 无需关注不同数据库Driver接口实现Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection(url, username, password);
双向代码耦合是什么意思(用大白话告诉你什么

文章插图
适配器模式
引入第三方库(,log4j),不应该直接在代码中继承或者使用其实体类 。
需要抽出上层统一接口,然后增加实现类,对外暴露接口 。
// 代码与log4j强耦合, 不推荐org.apache.log4j.Logger.getRootLogger().info("info");// 底层可以随意更换log框架FRLoggerFactory.getLogger().info("info");
双向代码耦合是什么意思(用大白话告诉你什么

文章插图
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢 。