精华内容
下载资源
问答
  • 2021-02-13 00:34:19

    什么是耦合、解耦

    一、耦合

    1、耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。

    2、在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使类和构件之间的耦合最小。

    3、分类:有软硬件之间的耦合,还有软件各模块之间的耦合。耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口。

    二、解耦

    1、解耦,字面意思就是解除耦合关系。

    2、在软件工程中,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。

    3、设计的核心思想:尽可能减少代码耦合,如果发现代码耦合,就要采取解耦技术。让数据模型,业务逻辑和视图显示三层之间彼此降低耦合,把关联依赖降到最低,而不至于牵一发而动全身。原则就是A功能的代码不要写在B的功能代码中,如果两者之间需要交互,可以通过接口,通过消息,甚至可以引入框架,但总之就是不要直接交叉写。

    4、观察者模式:观察者模式存在的意义就是「解耦」,它使观察者和被观察者的逻辑不再搅在一起,而是彼此独立、互不依赖。比如网易新闻的夜间模式,当用户切换成夜间模式之后,被观察者会通知所有的观察者「设置改变了,大家快蒙上遮罩吧」。QQ消息推送来了之后,既要在通知栏上弹个推送,又要在桌面上标个小红点,也是观察者与被观察者的巧妙配合。

    更多相关内容
  • 什么是Java程序的耦合

    千次阅读 2021-03-09 04:24:42
    耦合耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系...

    耦合度

    耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。

    模块间联系越多,其耦合性越强,同时表明其独立性越差(降低耦合性,可以提高其独立性)。耦合性存在于各个领域,而非软件设计中独有的,但是我们只讨论软件工程中的耦合。

    在软件工程中,耦合指的就是对象之间的依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

    它有如下分类:

    内容耦合。当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。

    公共耦合。两个或两个以上的模块共同引用一个全局数据项,这种耦合被称为公共耦合。在具有大量公共耦合的结构中,确定究竟是哪个模块给全局变量赋了一个特定的值是十分困难的。

    外部耦合。一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

    控制耦合。一个模块通过接口向另一个模块传递一个控制信号,接受信号的模块根据信号值而进行适当的动作,这种耦合被称为控制耦合。

    标记耦合。若一个模块 A 通过接口向两个模块 B 和 C 传递一个公共参数,那么称模块 B 和 C 之间存在一个标记耦合。

    数据耦合。模块之间通过参数来传递数据,那么被称为数据耦合。数据耦合是最低的一种耦合形式,系统中一般都存在这种类型的耦合,因为为了完成一些有意义的功能,往往需要将某些模块的输出数据作为另一些模块的输入数据。

    非直接耦合。两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

    总结:耦合是影响软件复杂程度和设计质量的一个重要因素,在设计上我们应采用以下原则:如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,尽量避免使用内容耦合。

    内聚与耦合

    内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

    耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

    程序讲究的是低耦合,高内聚。就是同一个模块内的各个元素之间要高度紧密,但是各个模块之间的相互依存度却要不那么紧密。

    内聚和耦合是密切相关的,同其他模块存在高耦合的模块意味着低内聚,而高内聚的模块意味着该模块同其他模块之间是低耦合。

    在进行软件设计时,应力争做到高内聚,低耦合。

    展开全文
  • 展开全部耦合性是编程中的一个判断代码模块构成质量的属性,不影响已有功能,但影响未来62616964757a686964616fe78988e69d8331333365633838拓展,与之对应的是内聚性。耦合性:也称块间联系。指软件系统结构中各模块...

    展开全部

    8a932be38a716e03ccfa16510b6e1e2d.png

    耦合性是编程中的一个判断代码模块构成质量的属性,不影响已有功能,但影响未来62616964757a686964616fe78988e69d8331333365633838拓展,与之对应的是内聚性。

    耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

    内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

    因此,现代程序讲究高内聚低耦合,即将功能内聚在同一模块,模块与模块间尽可能独立,互相依赖低。没有绝对没有耦合的模块组,只有尽量降低互相之间的影响。使模块越独立越好。

    JAVA简介:

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

    展开全文
  • Java耦合的理解

    千次阅读 2020-05-26 23:12:43
    java讲究高内聚,低耦合。今天我们就先来说一下什么是耦合,如何才能低耦合。 1.耦合定义:耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。也就是两者存在着强关联。 ...

    java讲究高内聚,低耦合。今天我们就先来说一下什么是耦合,如何才能低耦合。

    1.耦合定义:耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。也就是两者存在着强关联。

    2.高耦合的缺陷:程序的扩展性比较差。大家都知道我们做程序不会是一次性的事情,肯定是不断的迭代,所以扩展性对程序而言是很重要的。

    3.如何解耦合:a..通过接口解耦(举个例子:如果一台电脑想要通过打印机打印,电脑想用惠普打印机,又想用三星打印机,又想用其他打印机;如果使用继承,则电脑不能实现由多种打印机打印并且与继承的那个打印机之间的耦合度相当高;使用接口(功能的集合);接口中定义一个打印方法;各种打印机去实现这个接口,重写这个打印方法(重写一个属于自身的打印方法);而电脑(主调用类)想去调用打印方法,则需要在自身的类中注入这个接口的属性,通过接口属性去调用的打印方法,至于会调用那台打印机则由实际传参来决定;站在电脑的角度上,它完全不关心用谁打印,它只关心打印这个方法,不关注谁去实现这个打印方法。此时电脑和打印机之间的依赖关系大大减少。这就是利用接口进行解耦。ps:例子引用于https://blog.csdn.net/weixin_40958889/article/details/81174313)

    b.消息队列MQ解耦(

    就拿我们京东购物例子。我们一般在商城下单支付完成之后,然后会开始仓库安排物流送货。

    若我们来实现这个需求,我们可以在支付完成之后地调用仓储提供接口。但是这么做有什么弊端?

    这么做,我们下单服务耦合仓储服务,一旦仓储服务有任何问题,就会导致我们的下单服务就会有问题。

    所以我们一般做法是,下单完成之后,我们将信息投递到 MQ 中,然后仓储服务自己去订阅 MQ。这样好处就在与下单服务就与仓储服务解耦,仓储服务有问题,再也不会影响下单服务了。

    ps:例子来源于知乎,作者:楼下小黑哥)

     

     

    展开全文
  • 我对java中的松散耦合和紧密耦合有一些困惑。因为我知道松散耦合意味着彼此之间的信息最少,而紧密耦合意味着依赖关系。因为我们知道松散耦合可以通过接口实现和继承实现紧密耦合。例如:1)A(接口)2)C(班级)假设这四...
  • Java什么是耦合

    千次阅读 2020-09-08 08:58:25
    Java什么是耦合
  • 展开全部耦合性62616964757a686964616fe59b9ee7ad9431333365643662是编程中的一个判断代码模块构成质量的属性,不影响已有功能,但影响未来拓展,与之对应的是内聚性。耦合性:也称块间联系。指软件系统结构中各模块...
  • java耦合与解耦

    2019-08-27 19:36:23
    https://blog.csdn.net/qq_38788128/article/details/81187763
  • 什么是耦合耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( ...
  • Java项目,庞大的对象依赖关系将一直紧密耦合引起对象难以管理或修改。在这种情况下,可以使用Spring框架作为一个核心模块轻松高效地管理所有的对象依赖。本文章向大家介绍Spring松耦合的实例,需要的朋友可以参考...
  • Java耦合问题

    千次阅读 2020-07-10 12:45:01
    一、耦合问题 1、软件设计的耦合 耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口。 软件工程中对象之间的耦合度就是指对象之间的...
  • 耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准
  • Java什么耦合什么叫解耦

    千次阅读 2019-02-12 21:36:44
    可以按照琼瑶阿姨的路子继续想象,想成什么样都不过分,他们之间的这种状态就应该叫做“耦合”。 解耦: 他们这么下去,有人看不惯了,有一些掌握话语权的权利机构觉得有必要出面阻止了,这样下去不是个事吖,你得...
  • java程序的耦合度是什么

    千次阅读 2016-07-12 16:21:02
    程序的耦合度是 你的子程序之间的相关联性,也就是说你的多个类的联系 是否太紧密,打个比方,你房子里边有窗子 ,那房子 和窗子 就有了关联 耦合度 是松还是紧 就看你的 关联 是强还是弱,也就是修改的代价,比如 ...
  • java 里面耦合和解耦

    万次阅读 2019-11-10 18:33:18
      耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。 解耦就是用数学方法将两种运动分离开来处理问题。 这是形象搞笑的比喻:   完全可以这么想像嘛,有一对热恋中的...
  • 耦合耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。 在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使...
  • 几年来经历了很多项目,对代码之间的强耦合及书写不规范,维护性差等问题深恶痛绝。在这里,通过仔细分析后,结合自己的编码习惯总结了一套适用于javaweb项目的前端书写规范,与大家分享一下
  • 在程序设计时,为了避免程序的冗杂,减少各个类之间的依耐性,经常使用低耦合和高内聚的设计理念。 为了达到这个目的,我们采取以下措施: ①降低耦合:我们常用封装来降低耦合。例如,假如现在又A、B两个类,为降低...
  • 什么是耦合、紧耦合、松耦合

    千次阅读 2022-04-03 17:21:47
    一、耦合 耦合是两个或多个模块之间的相互关联。在软件工程中,两个模块之间的耦合度越高,维护成本越高。因此,在系统架构的设计过程中,应减少各个模块之间的耦合度,以提高应用的可维护性。 二、紧耦合耦合...
  • Java中的耦合和解耦

    千次阅读 2020-05-22 20:19:32
    Java耦合: 例如在web开发中,表现层需要持有业务层的对象,业务层中需要持有持久层的对象,这种关系是很强的依赖关系。 代码如下: 业务层:(在包service下) package top.radish.service public class Account...
  • 一、什么是耦合耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准。耦合的强度依赖于以下几个因素:(1)一个模块对另一个...
  • 程序间耦合是指程序之间的依赖关系。我们开发的程序如果耦合度太高就会导致独立性太差,所以软件开发应该遵循高内聚,低耦合的设计标准。依赖一般分为类之间的依赖和方法之间的依赖。那么如何降低程序间的依赖呢?在...
  • java耦合度介绍

    千次阅读 2018-05-02 09:29:29
    java耦合度解释 我们写程序的目标就是 高内聚 低耦合! 那什么是耦合度呢? 程序的耦合度是 你的子程序之间的相关联性,也就是说你的多个类的联系 是否太紧密,耦合度 是松还是紧 就看你的 关联 是强还是弱,也...
  • Java耦合解耦

    2019-02-07 17:35:42
    一、耦合 耦合关系:某两个事物之间如果存在一种相互作用、相互影响的关系 耦合指的就是俩个类或者俩个对象之间联系的紧密程度 二、解耦 解除类之间的直接关系,将直接关系转换成间接关系,一般情况下发现耦合需要...
  • Java 高内聚,低耦合

    千次阅读 2020-07-19 16:36:43
    2.1. 耦合,各个代码块间联系紧密程度的度量(模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 2.2. 耦合度,对象之间的耦合度...
  • Java】浅谈关于代码的耦合性前言一、需求二、简单的实现1.资源代码(项目提供)2.对需求的普通实现三、利用业务与逻辑分离的方式实现改进四、对需求改进后的同步项目改进(优点)总结 前言 前几天一个在公司里的...
  • 高内聚低耦合,是软件工程中的概念,是判断软件设计好坏的标准,主要用于程序的面向对象的设计,主要看类的内聚性是否高,耦合度是否低。 目的:使程序模块的可重用性、移植性大大增强。 通常程序结构中各模块的内聚...
  • 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的 总结:耦合是影响软件复杂程度和设计质量的一个重要因素,在设计上我们应采用以下原则:如果模块间必须存在耦合,就尽量使用数据...
  • java中类是什么意思

    千次阅读 2021-02-12 10:44:58
    类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。... (推荐学习:java课程)类的实质是一种引用数据类型,类似于byt...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 274,764
精华内容 109,905
关键字:

java耦合是什么

java 订阅