>  기사  >  Java  >  Java의 디자인 패턴 - 어댑터 패턴

Java의 디자인 패턴 - 어댑터 패턴

巴扎黑
巴扎黑원래의
2017-07-22 14:07:391005검색

정의(Baidu 백과사전):
컴퓨터 프로그래밍에서 어댑터 패턴(때때로 패키징 스타일 또는 패키징이라고도 함)은 사용자가 기대하는 대로 클래스의 인터페이스를 조정합니다.
어댑터를 사용하면 호환되지 않는 인터페이스로 인해 일반적으로 함께 작동하지 않는 클래스가 기존 클래스에 클래스 자체 인터페이스를 래핑하여 함께 작동할 수 있습니다.

UML 클래스 다이어그램:

특정 코드:

public class Client {public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Adapter adapter = new Adapter(adaptee);
        adapter.request();
    }
}public interface Target {void request();
}public class Adaptee {void adapteeRequest() {
        System.out.println("本类");
    }
}public class Adapter implements Target {

    Adapter(Adaptee adaptee) {this.adaptee = adaptee;
    }private Adaptee adaptee;
    @Overridepublic void request() {
        System.out.println("适配类");
        adaptee.adapteeRequest();
    }
}

이 패턴은 매일 사용되는 예제입니다. 일반적인 것은 다양한 어댑터 인터페이스입니다. Mac을 프로젝터에 연결할 때 일반적으로 어댑터 인터페이스가 필요합니다. 이것이 어댑터 모드입니다. 실제 개발 예시에서 현재 시스템은 단계별로 반복적으로 개발됩니다. 동일한 기능이 두 개 이상의 서로 다른 인터페이스를 가질 수 있습니다.
어떤 것은 이전 것을 호출해야 하고, 어떤 것은 나중에 호출해야 합니다. 모든 것이 엉망이므로 이전 버전과 새 버전이 호환되도록 하려면 어댑터를 추가해야 합니다.

적용 가능한 시나리오:

기존 클래스를 사용하고 싶지만 해당 인터페이스가 요구 사항을 충족하지 않습니다. 관련되지 않은 다른 클래스나 예상치 못한 클래스(예: 인터페이스가 반드시 호환되지 않을 수 있는 클래스)와 함께 작동할 수 있는 재사용 가능한 클래스를 만들고 싶습니다.
기존 하위 클래스 중 일부를 사용하고 싶지만 인터페이스에 맞게 각 하위 클래스를 하위 클래스로 만드는 것은 불가능합니다. 객체 어댑터는 상위 클래스 인터페이스에 적응할 수 있습니다

장점과 단점:

장점:

더 나은 재사용성과 확장성


단점:

여러 어댑터를 조합하면 시스템이 너무 혼란스럽고 안전하지 않게 됩니다. 파악하기 쉽습니다.


요약: 어댑터 모드는 "호환"이라는 두 단어로 요약할 수 있습니다. 물론 시스템이 더 좋아질 필요는 없습니다.

위 내용은 Java의 디자인 패턴 - 어댑터 패턴의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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