>  기사  >  Java  >  자바의 결합

자바의 결합

WBOY
WBOY원래의
2024-08-30 15:14:56977검색

JAVA의 결합은 a의 지표입니다. 객체 지향 환경에서 한 클래스가 다른 클래스에 대한 종속성 b. 개발자가 최종 사용자의 요구 사항을 충족하기 위해 다양한 클래스에 걸쳐 코드를 변경하는 유연성 수준 c. 한 클래스의 기능이 다른 클래스에서 사용되는 방식: 직접 또는 외부 인터페이스의 도움을 받아 d. 실행 후 코드를 유지하는 데 필요한 노력, e. 제어 반전 및 종속성 주입과 같은 혁신적인 소프트웨어 기술을 사용하여 코딩 및 테스트에 더 많은 유연성을 주입하는 방식 코드입니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

Java의 결합 유형

자바에는 크게 두 가지 결합이 있는데, 이를 자세히 분석해 보겠습니다.

1. 타이트 커플링

객체 지향 애플리케이션 설계에서는 이미 투자한 노력을 재사용하고 바퀴를 재발명하지 않기 위해 항상 한 클래스에서 개발된 논리를 다른 클래스에서 활용해야 합니다.

클래스 간 직접적인 협업으로 긴밀한 결합이 이루어지며, 특징은

  • 호출 클래스에서 사용 가능한 비즈니스 로직은 호출 클래스 내부에 객체로 생성됩니다.
  • 이렇게 생성된 개체는 필요한 기능을 달성하기 위해 호출 클래스 내에서 실행됩니다. 따라서 호출 프로그램은 호출된 클래스에서 사용할 수 있는 비즈니스 로직의 전체 기능을 알고 있습니다.
  • 호출된 클래스에 코딩된 비즈니스 로직의 모든 변경 사항은 호출된 클래스의 결과에 영향을 줍니다
  • 호출된 클래스에서 변경이 불가피하다면 호출된 클래스에서도 그에 맞는 변경이 이루어져야 합니다.
  • 따라서 클래스는 서로 매우 상호의존적입니다

밀접결합 예시

이 예에서 두 개의 협력 클래스인 'Ordervalue'와 'order'는 상호 의존적입니다. 호출 클래스 "Ordervalue"는 호출 클래스 "order"에 코딩된 비즈니스 논리를 그에 따라 알고 있으며, 호출 클래스의 코드는 구조화되어 있으며, 호출 클래스의 모든 변경 사항은 프로그램 결과를 뒤바꿉니다.

따라서 "Ordervalue" 클래스와 "Order" 클래스가 밀접하게 결합되어 있다고 결론을 내릴 수 있습니다.

코드:

// Tight Coupling - Sample program
public class ordervalue // Calling class
{
public static void main(String args[]) // method in the class
{
order b = new order(600,5); // creating object for the called class
System.out.println("value of the order is");
// order and execute it
System.out.println(b.value); // Prints the order value computed by
} // the called class
}
class order // Called class
{
public int value; // method in the class
order(int orderquantity, int rate) // business logic
{
this.value = orderquantity * rate; // computing the value
}
}

출력:

자바의 결합

2. 느슨한 커플링

이 개념에서는 OOPS에서 비즈니스 로직과 공통 기능을 공유하기 위해 협력해야 하는 클래스가 외부 소스를 통해 결합됩니다. 따라서 느슨하게 또는 간접적으로 서로 연결되어 있습니다.

느슨한 결합의 주요 특성은

  • 클래스, 코드 구성요소, 모듈 간의 종속성이 낮습니다.
  • 종속성이 불가피할 경우 인터페이스 등 외부 구성요소를 통해 연결됩니다.
  • 인터페이스를 사용한 연결은 느슨한 결합의 이점을 얻기 위해 최소화됩니다.
  • 클래스 내의 다른 클래스 주위에 객체를 정의할 필요가 없으며 객체는 독립적입니다.
  • 이 커플링에서 각 학급은 다른 학급에 대한 정보를 거의 알지 못합니다. 기껏해야 각 클래스는 다른 모듈이 노출되는 인터페이스를 인식할 것입니다.
  • 클래스의 코드 변경 사항은 다른 클래스에 영향을 주지 않으며 업데이트할 필요도 없습니다.
  • 개발자에게 코드를 쉽게 변경하고 새로운 비즈니스 변화를 수용할 수 있는 완벽한 유연성을 제공합니다.
  • 프로그램 유지에 드는 시간과 노력이 대폭 절감됩니다
  • 강한 결합을 극복하기 위해 제어 역전, 종속성 주입과 같은 Spring 프레임워크의 개념이 사용되고 있습니다.

제어 반전(IOC)

프로그램 모듈이나 객체에 대한 제어권을 컨테이너 프레임워크로 넘기는 개념이다. 이 개념은 OOPS에서 꽤 자주 사용됩니다. 라이브러리를 호출하는 프로그램 코드 대신 컨테이너 프레임워크가 제어 및 호출 코드를 대신합니다. 종속성을 생성하는 객체와 마찬가지로 종속성이 객체에 주입됩니다.

이 개념은 프로그래밍에서 느슨한 결합과 모듈성을 촉진합니다.

의존성 주입(DI)

DI는 IOC 개념을 사용하는 수단이며 개체 종속성을 설정할 때 제어 전송이 발생합니다.

느슨한 결합의 예

In the example, three Classes, “month1”, “month2”, “month3” are independent modules, and they collaborate little with each other through an interface “iface”. As a result, these classes have very little knowledge of the other classes on what they are doing. They only know that all the classes are interacting with an interface.

There is no object created using the other classes in any of these classes, and they are the typical examples of loose coupling.

Code:

// Loose Coupling in JAVA - Sample Program
interface Iface //Interface is defined
{
public void monthname(); //module within the interface
}
class month1 implements Iface { // Class interacts through
public void monthname() // interface
{
System.out.println("January");
}
}
class month2 implements Iface { // Class interacts through
public void monthname() // interface
{
System.out.println("Feburary");
}
}
class month3 implements Iface { // Class interacts through
public void monthname() // interface
{
System.out.println("March");
}
}
public class Subject { // Execution starts here
public static void main(String[] args)
{
Iface t = new month1(); // First class called thru
t.monthname(); // interface
Iface tx = new month2(); // Second class called thru
tx.monthname(); // interface
Iface tx2 = new month3(); // Third class called thru
tx2.monthname(); } // interface
}

Output:

자바의 결합

Conclusion

As far as possible, applications will have to be designed to hold only loose couplings for better maintainability and serviceability and keep interdependence between program components very minimal. However, if interdependence is a must, the components will have to be connected only through the interface.

위 내용은 자바의 결합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java에서 관찰 가능다음 기사:Java에서 관찰 가능