[java] Java Play Framework에서의 중복 코드 제거 방법은 어떻게 되나요?
  1. Helper 메서드 사용: 중복되는 코드 조각을 Helper 메서드로 추출하여 그 메서드를 재사용하면 코드 중복을 피할 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.
public class CommonUtils {
    public static void doSomething() {
        // 중복 코드 실행
    }
}

public class UserController {
    public Result action1() {
        CommonUtils.doSomething();
        // ...
    }

    public Result action2() {
        CommonUtils.doSomething();
        // ...
    }
}
  1. 상속을 통한 중복 코드 제거: 상속을 사용하여 공통 기능을 가진 부모 클래스를 만들고, 자식 클래스에서는 해당 기능을 상속받아 사용하는 방법입니다.
public class BaseController {
    public void commonAction() {
        // 중복 코드 실행
    }
}

public class UserController extends BaseController {
    public Result action1() {
        commonAction();
        // ...
    }

    public Result action2() {
        commonAction();
        // ...
    }
}
  1. AOP (Aspect-Oriented Programming) 적용: AOP는 프로그램의 횡단 관심사 (cross-cutting concern)를 모듈화하는 기법입니다. 중복 코드를 관심사로 취급하여 Aspect를 만들고, 해당 Aspect를 적용하여 중복 코드를 제거할 수 있습니다.
@With(CommonInterceptor.class)
public class UserController extends Controller {
    public Result action1() {
        // ...
    }

    public Result action2() {
        // ...
    }
}

public class CommonInterceptor extends Action.Simple {
    public CompletionStage<Result> call(Context ctx) {
        // 중복 코드 실행
        return delegate.call(ctx);
    }
}

이 외에도 여러 가지 방법이 존재합니다. 중복 코드를 제거함으로써 코드의 유지 보수성을 높이고, 잠재적인 버그를 줄이는 등 많은 이점을 얻을 수 있습니다.

참고 자료: