냄새 22. 데이터 클래스

    들어가기 전

    이 글은 인프런 백기선님의 강의를 복습하며 작성한 글입니다. 


    냄새 22. 데이터 클래스 (Data Class)

    • 데이터 클래스 냄새
      • public 필드만 있는 클래스 (변경에 취약함)
      • 필드에 대한 Getter/Setter만 있는 클래스
      • 결과적으로는 데이터 클래스 냄새는 Getter / Setter만 있고 비즈니스 로직에 대한 메서드들이 없는 경우 가리킴.
    • 왜 만들어질까?
      • 코드가 적절한 위치에 있지 않기 때문에 이런 냄새가 생길 수 있음. 데이터 클래스의 필드를 사용하는 메서드가 다른 클래스에 존재하기 때문에 '데이터 클래스'가 만들어질 수 있음. 
    • 데이터 클래스 냄새 예외
      • '단계 쪼개기'에서 중간 데이터를 표현하는데 사용할 레코드는 불변 객체로 데이터를 전달하는 용도로 사용할 수 있음. 이 경우는 냄새에 해당하지 않음.
    • 리팩토링 방법
      • public 필드를 가지고 있다면 '레코드 캡슐화하기'를 사용해 메서드를 통해서 접근하도록 고칠 수 있음.
      • 변경되지 않아야 할 필드에는 '세터 제거하기'를 적용할 수 있다. 
      • Getter / Setter가 사용되는 메서드를 찾아보고 '함수 옮기기'를 사용해서 메서드를 데이터 클래스로 옮길 수 있음.
      • 메서드 중 일부 코드만 옮겨야 한다면 '함수 추출하기'를 선행한 후에 데이터 클래스로 옮길 수 있다. 

    댓글

    Designed by JB FACTORY