어댑터는 구조 디자인 패턴이며, 호환되지 않는 객체들이 협업할 수 있도록 합니다.
어댑터는 두 객체 사이의 래퍼 역할을 합니다. 하나의 객체에 대한 호출을 캐치하고 두 번째 객체가 인식할 수 있는 형식과 인터페이스로 변환합니다.
복잡도:
인기도:
사용 예시들: 어댑터 패턴은 자바 코드에 자주 사용됩니다. 특히 일부 레거시 코드를 기반으로 하는 시스템에서 매우 자주 사용됩니다. 이러한 경우 어댑터는 레거시 코드가 현대식 클래스들과 함께 작동하도록 합니다.
자바 코어 라이브러리들에는 몇 가지 표준 어댑터들이 있습니다.
식별: 어댑터는 다른 추상/인터페이스 유형의 인스턴스를 받는 생성자의 존재여부로 인식할 수 있습니다. 어댑터가 그의 메서드들에 대한 호출을 수신하면, 어댑터는 매개변수들을 적절한 형식으로 변환한 다음 해당 호출을 래핑 된 객체의 하나 또는 여러 메서드들에 전달합니다.
둥근 구멍들에 정사각형 못들을 맞추기
아래 간단한 예시는 어댑터가 호환되지 않는 객체들이 어떻게 서로 협업할 수 있도록 하는지 보여줍니다.
round
round/RoundHole.java: 둥근 구멍들
round/RoundPeg.java: 둥근 못들
square
square/SquarePeg.java: 정사각형 못들
adapters
adapters/SquarePegAdapter.java: 정사각형 못들을 둥근 구멍들에 맞추는 어댑터
Demo.java: 클라이언트 코드
OutputDemo.txt: 실행 결과