耦合式是什么意思_什么是耦合?
什么是耦合
?
Jams Gosling(Java
之父
)
说过,
“
想抛弃
classes”
当然,他的意思是,不是抛弃
class
本身,而是
继承
(extends
关系
)
。
他想用接口
(implements
关系
)
来代替
extends
是更好的。
我们应该尽可能
的避免实现继承,原因如下:
1
失去灵活性,使用具体类会给底层的修改带来麻烦。
2
耦合问题,耦合是指两个实体相互依赖于对方的一个量度。程序员每天都在
(
有意识地或者无
意识地
)
做出影响耦合的决定:类耦合、
API
耦合、应用程序耦合等等。在一个用
extends
的继
承实现系统中,
派生类是非常紧密的与基类耦合,
而且这种紧密的连接可能是被不期望的。
如
B
extends A
,当
B
不全用
A
中的所有
methods
时,这时候,
B
调用的方法可能会产生错误
!
我们必须客观的评价耦合度,
系统之间不可能总是松耦合的,
那样肯定什么也做不了。
而我们
决定耦合的程度的依据何在呢?简单的说,
就是根据需求的稳定性,
来决定耦合的程度。
对于稳
定性高的需求,不容易发生变化的需求,我们完全可以把各类设计成紧耦合的
(
我们虽然讨论类
之间的耦合度,但其实功能块、模块、包之间的耦合度也是一样的
)
,因为这样可以提高效率,
而且我们还可以使用一些更好的技术来提高效率或简化代码,
例如
Java
中的内部类技术。
可是,
如果需求极有可能变化,
我们就需要充分的考虑类之间的耦合问题,
我们可以想出各种各样的办
法来降低耦合程度,
但是归纳起来,
不外乎增加抽象的层次来隔离不同的类,
这个抽象层次可以
是具体的类,也可以是接口,或是一组的类
(
例如
Beans)
。我们可以借用
Java
中的一句话来概
括降低耦合度的思想:
"
针对接口编程,而不是针对实现编程。
在我们进行编码的时候,都会留下我们的指纹,如
public
的多少,代码的格式等等。我们可
以耦合度量评估重新构建代码的风险。
因为重新构建实际上是维护编码的一种形式,
维护中遇到
的那些麻烦事在重新构建时同样会遇到。我们知道在重新构建之后,最常见的随机
bug
大部分
都是不当耦合造成的
。
如果不稳定因素越大,它的耦合度也就越大。如果不稳定因素越大,它的耦合度也就越大。
耦合式是什么意思_什么是耦合?相关推荐
- 耦合式是什么意思_什么是耦合、解耦
一.耦合 1.耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象. 2.在软件工程中,对象之间的耦合度就是对象之间的依赖性.对象之间的耦合越高,维护成本越高,因此对象 ...
- 耦合式是什么意思_定向耦合器是如何工作的?能怎样应用?看完就全明白了
定向耦合器的工作原理 定向耦合器是微波测量和其它微波系统中常见的微波/毫米波部件,可用于信号的隔离.分离和混合,如功率的监测.源输出功率稳幅.信号源隔离.传输和反射的扫频测试等.它是一种有方向性的微波 ...
- 耦合式是什么意思_高内聚 ,低耦合 到底是什么意思?
总会听到大牛们说到"高内聚,低耦合",不是特别明白,最近查阅了一些资料,才明白. '高内聚,低耦合'是相对于代码而言,一个项目中: 每个模块之间相互联系的紧密程度,模块之间联系越紧 ...
- 耦合式是什么意思_什么是微服务?一篇文章让你彻底搞明白
一.微服务介绍 1. 什么是微服务 在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微".什么是"服务", 微 狭义来讲就 ...
- 耦合式是什么意思_耦合是什么意思通俗点(耦合摆原理)
模块 模块就是从逻辑上将系统分解为更细微的部分, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决. 耦合主要描述模块之间的关系, 内聚主要描述模块内部.模块的粒度可大可小, 可以是函数, 类, 功 ...
- 外部轴耦合_Rototest轴耦合式底盘测功机
Rototest轴耦合式底盘测功机(轮毂式)可模拟整车实际行驶的道路负载,同步采集驱动轮扭矩.转速等参数,分析整车动力性能.同时也可配备其他设备进行经济性.排放性.能量管理和续驶里程等试验. 系统组成 ...
- 耦合式无线充电系统设计记录_1
1.设计过程 昨天用刚绕的利兹线绕了两个6匝的线圈.利兹线为150股,必须要用利兹线,因为利兹线是由多股铜线制成,可有效抑制趋肤效应关于趋肤效应有兴趣的同学可以上百度找一下这里不再阐述,直径约为10c ...
- java 什么是耦合_什么是耦合、解耦
什么是耦合.解耦 一.耦合 1.耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象. 2.在软件工程中,对象之间的耦合度就是对象之间的依赖性.对象之间的耦合越高,维护 ...
- 非抢占式优先算法例题_三维点云的经典算法与前沿技术有哪些?
三维点云是最重要的三维数据表达方式之一. 从技术角度看,SLAM.三维重建.机器人感知等领域,点云都是最简单且最普遍的表达方式:相对于图像,点云有其不可替代的优势--深度,即三维点云直接提供了三维空间 ...
最新文章
- android三种载入图片方式
- Linux下c开发 之 线程通信(转)
- P6688-可重集【字符串hash,线段树】
- 本想试试看,结果却拿到了京东的Offer
- 学习3D图形引擎中使用的基本数学
- 希腊数学符号与读音对照表
- 苹果架构调整:AI、机器学习和Siri合并,由前谷歌AI负责人领导
- nina数据库的采样频率_基于深度学习模型的表面肌电信号手势动作识别算法研究...
- java求1到100素数的和_求解JAVA题:求出1~100中所有质数?,求一段java代码,题目是求1到100之间所有质数和?...
- distinct效率更高还是group by效率更高?
- Image.Save 方法
- MacOS 苹果系统下 OBS黑屏(屏幕录制黑屏)解决办法
- 校验MD5值是什么意思?
- 晶体三极管原理及应用
- QString::fromLocal8Bit()函数
- 用 Windows Live Writer完美发布新浪、网易、blogcn、blogbus、cnblogs 博客2
- python 热图颜色,按百分比显示中间颜色的python热图
- Leetcode刷题 Day4~Day5
- 中兴智能视觉大数据报道:进小区1秒人脸识别,自动打开道闸放行
- 白帽子黑客与网络安全工程师带你:远程桌面漏洞利用与Windows7计算机攻防实战
热门文章
- 黑群崩溃重装方法-SSD引导方式(简)
- Java集合(Collection)习题集锦
- python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)...
- 2020年末知识大总结:Java程序员转Android开发必读经验一份
- 【xcode】Xcode常用快捷键与技巧
- Google 东京奥运会 Doodle
- edge浏览器如何把网页放到桌面_win10edge怎么放在桌面
- Slick.js使用方法——幻灯片
- 1000:入门测试题目--信息学奥赛一本通题解
- 十二生肖在英文中的寓意