耦合是指另一个对象对一个对象的使用。也可以称为协作。一个对象与另一个对象之间的依赖关系可以完成一些任务,可以分为以下两种类型:紧密耦合-当对象创建要使用的对象时,则为紧密耦合情况。由于主要对象创建了对象本身,因此无法从外部将其更改为易于将其标记为紧密耦合的对象。
松散耦合-当对象从外部获取要使用的对象时,则为松散耦合情况。由于主要对象仅是使用对象,因此可以从外部轻松更改该对象,将其标记为松散耦合的对象。
示例-紧耦合
测试器
public class Tester {
public static void main(String args[]) {
A a = new A();
//a.display()将打印A和B-
//此实现不能动态更改
//紧密耦合
a.display();
}
}
class A {
B b;
public A() {
//b与A紧密耦合
b = new B();
}
public void display() {
System.out.println("A");
b.display();
}
}
class B {
public B(){}
public void display() {
System.out.println("B");
}
}
这将产生以下结果-
输出结果A
B
示例-松耦合
测试器import java.io.IOException;
public class Tester {
public static void main(String args[]) throws IOException {
Show b = new B();
Show c = new C();
A a = new A(b);
//a.display()将打印A和B-
a.display();
A a1 = new A(c);
//a.display()将打印A和C-
a1.display();
}
}
interface Show {
public void display();
}
class A {
Show s;
public A(Show s) {
//s与A松散耦合
this.s = s;
}
public void display() {
System.out.println("A");
s.display();
}
}
class B implements Show {
public B(){}
public void display() {
System.out.println("B");
}
}
class C implements Show {
public C(){}
public void display() {
System.out.println("C");
}
}
这将产生以下结果-
输出结果A
B
A
C
使用接口,我们通过注入依赖关系来实现松散耦合。