애플리케이션을 개발하는 동안 구성 요소를 서로 독립적으로 유지하는 것이 필수입니다. 이것이 바로 느슨한 결합입니다. 이는 애플리케이션에 대한 표준화, 통합, 정규화 및 거버넌스를 제공합니다. 느슨하게 결합된 애플리케이션은 확장하기 쉽습니다.
이 기사에서는 예제를 통해 애플리케이션을 느슨하게 결합하고 최대한 활용하는 방법을 배웁니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!