Java 中的耦合
java programming java8object oriented programming
耦合是指一个对象被另一个对象使用。它也可以称为协作。一个对象对另一个对象完成某项任务的依赖可以分为以下两种类型 −
紧耦合 - 当一个对象创建要使用的对象时,就是一种紧耦合的情况。由于主对象自己创建对象,因此外部世界无法轻易更改此对象,因此将其标记为紧耦合对象。
松耦合 - 当一个对象从外部获取要使用的对象时,就是一种松耦合的情况。由于主对象只是使用该对象,因此可以从外部世界更改该对象,从而轻松将其标记为松散耦合的对象。
示例 - 紧耦合
Tester.java
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
示例 - 松散耦合
Tester.java
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
使用接口,我们通过注入依赖关系来实现松散耦合。