耦合是指另一个对象对一个对象的使用。也可以称为协作。一个对象与另一个对象之间的依赖关系可以完成一些任务,可以分为以下两种类型:
紧密耦合 -当对象创建要使用的对象时,则为紧密耦合情况。由于主要对象创建了对象本身,因此无法从外部将其更改为易于将其标记为紧密耦合的对象。
松散耦合 -当对象从外部获取要使用的对象时,则为松散耦合情况。由于主要对象仅是使用对象,因此可以从外部轻松更改该对象,将其标记为松散耦合的对象。
测试器
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
使用接口,我们通过注入依赖关系来实现松散耦合。