欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring 耦合(低耦合、高耦合)、解耦、高内聚

程序员文章站 2024-03-14 21:25:59
...

耦合

在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使类和构件之间的耦合最小,java中指的是,两个类之间的联系的紧密程度。

强耦合关系:

public class A {
    public void say() {
        System.out.println("I am A");
    }
}
public class B {
    public void put(A a) {
        a.say();
    }
}

A类 和 B类 之间存在一种很强的一个联系,B类的 put方法 参数必须是 A类类型,不可以是 非A类类型。

 

弱耦合关系:

public interface IBase {
    void say();
}
public class A implements IBase {
    @Override
    public void say() {
        System.out.println("I am A");
    }
}
public class B implements IBase {
    @Override
    public void say() {
        System.out.println("I am B");
    }
}
public class C {
    public void put(IBase base) {
        base.say();
    }
}

C类 与 A类、B类之间就存在一种弱耦合关系,C类 的 put方法 的参数可以是 A类类型 也可以是 B类类型,不像强耦合关系中必须是 A类类型 其他类型皆不可的情形。

 

解耦:降低耦合就是对两类之间进行解耦,解除类之间的直接关系,将直接关系转换成间接关系,和上面代码一样,这种思想利用了多态的思想,我们一般情况都是使用接口的方式来实现解耦的。

高内聚:也就是尽可能的使一个模块或一个类再或者是一个方法只专注做好一件事。

“高内聚,低耦合”,用一句话概括就是写的代码尽可能专一的完成一个任务,且各段代码尽量模块化互相独立。