Java 中的耦合
耦合是指一個物件使用另一個物件。這也可以稱為協作。一個物件依賴於另一個物件來完成某個任務,可以分為以下兩種型別 −
緊密耦合 - 當一個物件建立要使用的物件時,則是一種緊密耦合的情況。由於主物件本身建立了該物件,因此該物件不能輕易從外部世界更改,這將該物件標記為緊密耦合的物件。
鬆散耦合 - 當一個物件從外部獲取要使用的物件時,則是一種鬆散耦合的情況。由於主物件只是使用該物件,因此該物件可以輕鬆地從外部世界更改,這將該物件標記為鬆散耦合的物件。
示例 - 緊密耦合
Tester.java
public class Tester {
public static void main(String args[]) {
A a = new A();
//a.display() will print A and B
//this implementation can not be changed dynamically
//being tight coupling
a.display();
}
}
class A {
B b;
public A() {
//b is tightly coupled to A
b = new B();
}
public void display() {
System.out.println("A");
b.display();
}
}
class B {
public B(){}
public void display() {
System.out.println("B");
}
}這將生成以下結果 −
Output
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() will print A and B
a.display();
A a1 = new A(c);
//a.display() will print A and C
a1.display();
}
}
interface Show {
public void display();
}
class A {
Show s;
public A(Show s) {
//s is loosely coupled to 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");
}
}這將生成以下結果 −
Output
A B A C
使用介面,我們可以透過注入依賴關係來實現鬆散耦合。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP