Generic 뜯어보자

가언·2024년 8월 2일

아래 코드를 보고 ApiResult의 생김새를 추측해보자!


public static class ApiResult<T> {
    private private boolean success;
    private private T response;
    private private Throwable error;

    public ApiResult(boolean success, T response, Throwable error) {
        this.success = success;
        this.response = response;
        this.error = error;
    }
}

보완하고 싶은 점

  • ApiUtils 굳이 없어도 될듯! 리턴을 하는 역할 밖에 안하기 때문
  • null을 굳이 생성자에 들어가야 할까?
    - private fianl로 선언해서 수정이 불가능하도록 하고,
    - constructor에서 초기화하는 것 외에는 불가 constructor로 무조건 주입해야해 발생한 상황
  • 차라리 성공/실패 객체를 따로 만드는게 좋을 듯

왜 이렇게 설계했을까?

  • 성공이든 실패이든 같은 필드로 보고 싶어서
  • 프론트 입장에서 쉽게 꺼내서 확인하고 처리할 수 있도록 하기 위해
  • 프론트엔드와 협의해야할 부분일듯

참고 깃 허브 주소
코드 내 static: 객체 생성없이 사용 가능하도록 함.-> 단일책임원칙을 어기진 않음

profile
@gari_guri

0개의 댓글