>  기사  >  Java  >  Java 디자인 패턴의 어댑터 패턴을 구현하는 방법

Java 디자인 패턴의 어댑터 패턴을 구현하는 방법

WBOY
WBOY앞으로
2023-04-25 10:37:061450검색

    어댑터 패턴이란 무엇입니까

    어댑터 패턴(Adapter)은 다음과 같이 정의됩니다. 인터페이스가 호환되지 않아 함께 작동할 수 없는 클래스가 작동할 수 있도록 클래스의 인터페이스를 고객이 원하는 다른 인터페이스로 변환합니다. 함께 . 어댑터 패턴은 클래스 구조 패턴과 객체 구조 패턴의 두 가지 유형으로 나누어지는데, 전자가 후자에 비해 클래스 간의 결합도가 높고 프로그래머가 기존 컴포넌트 라이브러리에서 해당 컴포넌트의 내부 구조를 이해해야 하므로 일부는 상대적으로 거의 사용되지 않습니다.

    장점

    1. 클라이언트는 어댑터를 통해 대상 인터페이스를 투명하게 호출할 수 있습니다.

    2. 기존 클래스를 재사용합니다. 프로그래머는 원본 코드를 수정하고 기존 어댑터 클래스를 재사용할 필요가 없습니다.

    3. 대상 클래스와 어댑터 클래스를 분리하여 대상 클래스와 어댑터 클래스 간의 인터페이스 불일치 문제를 해결합니다.

    4. 많은 비즈니스 시나리오에서 열기 및 닫기 원칙을 준수하세요.

    단점

    1. 어댑터 작성 과정은 비즈니스 시나리오와 연계하여 충분히 고려해야 하며 이로 인해 시스템이 복잡해질 수 있습니다.

    2. 코드 읽기의 난이도가 높아지고 코드의 가독성이 떨어집니다. 어댑터를 과도하게 사용하면 시스템 코드가 지저분해집니다.

    지식 포인트

    클래스 어댑터 패턴: 다중 상속을 사용하여 구현할 수 있습니다. 예를 들어 C++에서는 현재 시스템의 비즈니스 인터페이스와 기존 구성 요소 라이브러리에 이미 존재하는 구성 요소 인터페이스를 모두 상속하는 어댑터 클래스를 정의할 수 있습니다. Java는 다중 상속을 지원하지 않습니다. 그러나 기존 구성 요소 라이브러리에 이미 존재하는 구성 요소를 상속하면서 현재 시스템의 비즈니스 인터페이스를 구현하기 위해 어댑터 클래스를 정의할 수 있습니다.

    객체 어댑터 패턴: 기존 컴포넌트 라이브러리에 구현된 컴포넌트를 어댑터 클래스에 도입할 수 있으며, 이는 현재 시스템의 비즈니스 인터페이스도 구현합니다. 이제 기본 구조를 소개하겠습니다.

    어댑터 모드 구현

    사례: 홍마오는 불의 수정을 사용하여 불의 춤 선풍검 Qi를 활성화합니다

    대상 인터페이스: Changhong Sword Qi

    Adaptee 클래스: 불의 춤 선풍의 검 Qi

    어댑터(어댑터) 범주: 불의 수정

    홍마오는 현재 창홍검 ​​Qi만 활성화할 수 있지만, 불춤 선풍검 Qi

    를 활성화하려면 불 수정의 힘을 사용하여 창홍검 Qi를 불춤 선풍검 Qi

    로 변환해야만 합니다. 참고: 제가 여기 있는 것은 Fire Dance Whirlwind Sword Qi를 Changhong Sword Qi

    클래스 어댑터

    Changhong Sword Qi

    에 적용하는 것입니다. Changhong Sword Qi를 활성화하는 추상적인 방법을 포함하여 Changhong Sword Qi에 대한 인터페이스를 선언합니다.

    public interface Chang {
        void chang();
    }
    Fire Dance Whirlwind Sword Qi

    Fire Dance Whirlwind Sword Qi 카테고리에서 Fire Dance Whirlwind Sword Qi를 활성화하는 방법을 선언합니다.

    public class Huo {
        public void huo() {
            System.out.println("火舞旋风剑气");
        }
    }
    Fire Crystal

    Fire Crystal 클래스는 Fire Dance Whirlwind Sword Qi 클래스를 상속하고(목적: 상속 후 클래스의 메소드를 사용할 수 있음) Changhong Sword Qi 인터페이스를 구현합니다(목적: 활성화를 구현함) Changhong Sword Qi) 방법). 창홍검기를 발동하는 방법 중에는 화무선풍검기를 발동하는 방법이 사용된다.

    public class JingShi extends Huo implements Chang {
        @Override
        public void chang() {
            huo();
        }
    }
    Test
    public class Demo {
        public static void main(String[] args) {
            Chang haha = new JingShi();
            haha.chang();
        }
    }

    Java 디자인 패턴의 어댑터 패턴을 구현하는 방법

    Object Adapter

    Changhong Jianqi

    Changhong Jianqi

    public interface Chang {
        void chang();
    }
    Fire Dance Whirlwind Sword Qi

    Fire Dance Whirlwind Sword를 활성화하는 추상 메서드를 포함하여 Changhong Jianqi의 인터페이스를 선언합니다. 기 유형, Fire Dance Whirlwind Sword Qi를 활성화하는 방법을 선언합니다.

    public class Huo {
        public void huo() {
            System.out.println("火舞旋风剑气");
        }
    }
    Fire Crystal

    Fire Crystal 클래스는 Changhong Sword Qi 인터페이스를 구현하고 Fire Dance Whirlwind Sword Qi의 속성을 선언하며 Changhong Sword Qi를 자극하는 방법을 구현합니다. 창홍검기 발동방법에 불춤 선풍검기 발동방법이 포함되어 있습니다.

    public class JingShi implements Chang {
        private Huo huo;
        JingShi() {
        }
        JingShi(Huo huo) {
            this.huo = huo;
        }
        @Override
        public void chang() {
            huo.huo();
        }
    }
    Test

    Fire Dance Whirlwind Sword Qi 개체를 새로 만들고 Fire Crystal Stone 개체를 새로 만든 다음 Fire Dance Whirlwind Sword Qi 개체를 Fire Crystal Stone 개체에 전달합니다.

    public class Demo {
        public static void main(String[] args) {
            Huo huo = new Huo();
            Chang haha = new JingShi(huo);
            haha.chang();
        }
    }

    Java 디자인 패턴의 어댑터 패턴을 구현하는 방법

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

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제