Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactor] 패키지 구조 개선 #79

Open
packdev937 opened this issue Jan 6, 2024 · 0 comments
Open

[Refactor] 패키지 구조 개선 #79

packdev937 opened this issue Jan 6, 2024 · 0 comments
Assignees

Comments

@packdev937
Copy link
Collaborator

packdev937 commented Jan 6, 2024

Summary

패키지 전반적으로 리팩토링을 진행하였습니다.

패키지 구조

패키지 구조의 일부를 변경하였습니다. 기존에 domain 패키지에 모여있던 domain 클래스들을 조금 더 세분화 하여 분리하였습니다.
예를 들어, review와 관련된 domain 클래스는 모두 domain - review 패키지로 리팩토링하였습니다.

변수 명 변경

  • 축약어들을 전부 리팩토링 하였습니다. (img -> image)
  • 추가적으로 enum 클래스 내의 필드 명을 모두 알맞게 변경하였습니다. (krName -> description)

정적 팩토리 메소드

Enum 클래스 내 정적 팩토리 메소드가 찾고자 하는 값이 없을 시 예외를 던지도록 수정하였습니다.

  @JsonCreator
    public static ReportStatus from(final String description) {
        return Arrays.stream(ReportStatus.values())
            .filter(v -> v.getDescription().equals(description))
            .findAny()
            .orElseThrow(IllegalArgumentException::new);
    }

책임에 맞게 분배

  • MenuService 내 toDate()을 DateUtils로 리팩토링 하였습니다.
  • MenuService 내 isExistMeal()을 MenuValidator로 리팩토링 하였습니다.
  • ReviewService 내 평점 계산 책임을 RateCalculator로 분리하였습니다.

Map 대신 DTO

  • 기존에 Map으로 운영되던 로직을 DTO로 변환하였습니다. 그리고 ReviewRate VO 객체에서 이를 바로 DTO로 전환할 수 있게 로직을 구상하였습니다.
    ReviewRate 중 일부
public static ReviewRateCountResponse toResponse() {
        return new ReviewRateCountResponse(
            RATE_1.getCount(),
            RATE_2.getCount(),
            RATE_3.getCount(),
            RATE_4.getCount(),
            RATE_5.getCount()
        );
    }

ReviewCalculator 중 일부

    public ReviewRateCountResponse menuRateCount(Menu menu) {
        ReviewRate.resetAll();

        menu.getReviews().calculateReviewRates();

        return ReviewRate.toResponse();
    }
@packdev937 packdev937 self-assigned this Jan 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant