[java] 제네릭 인터페이스와 어댑터 패턴(Adapter Pattern)

개요

이 포스트에서는 제네릭 인터페이스어댑터 패턴에 대해 알아보겠습니다. 먼저, 각각의 개념과 사용 예시에 대해 소개하고, 그 후에 관련 코드를 살펴볼 것입니다.

제네릭 인터페이스

제네릭 인터페이스는 제네릭을 사용하여 타입 파라미터를 지정하는 인터페이스입니다. 이를 통해 여러 종류의 타입을 처리할 수 있는 재사용 가능한 클래스를 만들 수 있습니다. 제네릭 인터페이스를 사용하면 컴파일 시에 타입 안전성을 보장할 수 있습니다.

public interface MyGenericInterface<T> {
    T process(T input);
}

위 예시에서 MyGenericInterface는 제네릭 인터페이스로, 하나의 타입 파라미터 T를 갖습니다. 메서드 process는 입력으로 T 타입을 받아들이고, T 타입을 반환합니다.

어댑터 패턴

어댑터 패턴은 한 인터페이스를 다른 인터페이스로 변환시키는 구조적인 패턴입니다. 이 패턴은 기존의 클래스를 수정하지 않고도 새로운 인터페이스를 사용할 수 있도록 해줍니다. 어댑터 패턴은 시스템의 유연성을 높여줄 뿐만 아니라 코드 재사용성을 증가시킵니다.

public class MyAdapter implements MyGenericInterface<Double> {
    private LegacyClass legacyObj;
    
    public MyAdapter(LegacyClass legacyObj) {
        this.legacyObj = legacyObj;
    }
    
    public Double process(Double input) {
        int intInput = input.intValue();
        return (double) legacyObj.specificProcess(intInput);
    }
}

위의 예시에서 MyAdapterMyGenericInterface를 구현하고, process 메서드를 변환하여 LegacyClass의 특정 메서드를 사용할 수 있도록 합니다.

결론

제네릭 인터페이스와 어댑터 패턴은 코드의 유연성과 재사용성을 높이는데 사용될 수 있는 강력한 도구입니다. 제네릭 인터페이스를 통해 다양한 타입을 다룰 수 있고, 어댑터 패턴을 활용하면 기존 클래스와 새로운 인터페이스 사이의 간극을 좁힐 수 있습니다.

이상으로 제네릭 인터페이스와 어댑터 패턴에 대한 개관을 마치겠습니다.

참고 자료