>  기사  >  Java  >  애플리케이션을 느슨하게 결합하도록 만들기 - 추상화-다형성

애플리케이션을 느슨하게 결합하도록 만들기 - 추상화-다형성

WBOY
WBOY원래의
2024-07-16 16:07:50491검색

Make your application loosely coupled-Abstraction-PolyMorphism

애플리케이션을 개발하는 동안 구성 요소를 서로 독립적으로 유지하는 것이 필수입니다. 이것이 바로 느슨한 결합입니다. 이는 애플리케이션에 대한 표준화, 통합, 정규화 및 거버넌스를 제공합니다. 느슨하게 결합된 애플리케이션은 확장하기 쉽습니다.

이 기사에서는 예제를 통해 애플리케이션을 느슨하게 결합하고 최대한 활용하는 방법을 배웁니다.

느슨한 결합의 필요성:

UserDatabase 데이터베이스에서 무언가를 가져오고 있다고 가정해 보겠습니다. 데이터베이스 레코드를 가져오는 데이터 계층 정의 함수는 다음과 같습니다.

public class UserDatabase {
    public String getUserDetails(){
        return "User Deatils ";
    }
}

서비스 계층에서 레코드를 가져오기 위해 데이터 계층과 통신하는 함수를 만들어 보겠습니다.

public class UserDatabase {
    public String getUserDetails(){
        return "User Details in DB1";
    }
}

애플리케이션 계층 또는 기본 기능에서 서비스 계층과 대화합니다.

public static void main(String[] args) {
        //Tight Coupling
        UserManager userManager = new UserManager();
        System.out.println(userManager.getUserInfo());
    }

이 애플리케이션에서 애플리케이션을 확장하려고 하면 긴밀한 결합으로 인해 애플리케이션이 중복되고 확장하기 어려워집니다.
이것이 느슨하게 결합된 애플리케이션이 중요한 이유입니다. 스프링 부트에서는 인터페이스를 사용하여 이를 구현합니다. 위의 앱을 느슨하게 결합해 보겠습니다.

느슨한 커플링:

데이터 계층의 전체 구조를 제공하는 인터페이스를 정의해 보겠습니다.

public interface UserDataProvider {
    String getUserDetails();
}

이제 이 인터페이스를 구현하는 동안 데이터베이스 레코드를 가져옵니다.

public class UserDatabase implements UserDataProvider{
    @Override
    public String getUserDetails(){
        return "User Details in DB1";
    }
}

이제 데이터 계층과 통신할 서비스 계층을 정의합니다.

public class UserManager {
    private UserDataProvider userDataProviderr;
    public UserManager(UserDataProvider userDataProvider) {
        this.userDataProviderr = userDataProvider;
    }

    public String getUserInfo(){
        return userDataProviderr.getUserDetails();
    }
}

여기에서 UserDataProvider 참조 객체를 UserManager에 주입하는 동안 해당 인터페이스를 구현하는 UserDatabase 함수에 액세스할 수 있으므로 다음에서 추상화를 제공합니다. 데이터 레이어 수준.

이제 UserManager를 통해 기록에 액세스할 수 있습니다.

    UserDataProvider userDataProvider = new UserDatabase();
        UserManager userManager = new UserManager(userDataProvider);
        System.out.println(userManager.getUserInfo());

예를 들어 WebServerDatabase와 같은 다른 데이터베이스를 구성해야 하는 경우 애플리케이션을 쉽게 확장하고 원하는 만큼 많은 데이터베이스 연결을 통합할 수 있습니다. 구현된 인터페이스에 할당된 인스턴스만 생성하면 됩니다. 그런 다음 UserManager를 통해 해당 항목에도 액세스할 수 있습니다. 인터페이스를 사용하면 추상화, 느슨한 결합 및 다형성(다른 클래스에서 동일한 인터페이스를 구현하면 다형성이 제공됨)이 제공됩니다.

행복한 코딩하세요 :)

위 내용은 애플리케이션을 느슨하게 결합하도록 만들기 - 추상화-다형성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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