[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);
}
}
위의 예시에서 MyAdapter
는 MyGenericInterface
를 구현하고, process
메서드를 변환하여 LegacyClass
의 특정 메서드를 사용할 수 있도록 합니다.
결론
제네릭 인터페이스와 어댑터 패턴은 코드의 유연성과 재사용성을 높이는데 사용될 수 있는 강력한 도구입니다. 제네릭 인터페이스를 통해 다양한 타입을 다룰 수 있고, 어댑터 패턴을 활용하면 기존 클래스와 새로운 인터페이스 사이의 간극을 좁힐 수 있습니다.
이상으로 제네릭 인터페이스와 어댑터 패턴에 대한 개관을 마치겠습니다.