Nested Class에 대한 생각 정리

murkgom·2021년 11월 25일
0

Nested Class, Inner Static Class?

  • 개발을 하다보면 한 도메인에서 여러 종류의 dto가 필요(request, response 등등)
  • 여러 개의 dto를 생성할 것인지, inner static class로 묶을 것인지 고민

1. 여러 개의 dto

public class UserRegister {
    private String name;
    ...
}

public class UserUpdate {
    private int id;
    private String name;
    ...
}
  • 하나의 파일에 하나의 class가 존재

2. Nested Class

public class User {
    public static Class Register {
    	private String name;
        ...
    }
    
    public static class Update {
    	private int id;
        private String name;
        ...
    }
}
  • 하나의 class 하위에 관련 dto가 모두 모여 있음

내 생각

여러 개의 dto 사용

why?

1. 현 시스템은 mybatis를 활용, parameterType, resultType 선언시 불편함

  • fullPackageName.ClassName.$InnerClassName

2. nasted class의 naming이 쉽거나 짧지 않다.

  • 어차피 클래스 호출시 ClassName.InnerClassName 으로 호출하고 있음

3. 클래스들의 통일성

  • innerClass가 필요한 경우가 있고 아닌 경우가 존재 -> 통일성 해침

4. inner class의 존재 이유를 생각하자

  • inner Class는 기본적으로 해당 클래스 내에서만 사용하고자 선언하는 것
  • 외부단(controller 등)에서 사용할 dto를 innerClass로 두는 것은 석연치 않다.

0개의 댓글