개발/Project
도메인 객체지향적으로 Refactoring 하기
라니킴
2022. 2. 13. 18:22
도메인 주도 설계에 따르면 dto는 애플리케이션 레이어이기 때문에 Dto는 Entity에 의존할 수 있지만 Entity는 dto를 몰라야 한다.
기존에 작성해 놓은 코드를 보면 엔티티에서 dto에 의존하고 있는 부분이 여러군데 있었다.
Entity는 최대한 깔끔하게 두도록 하자.
1. Restaurant Entity
1.1 수정 전
RestaurantService
Restaurant entity
1.2 수정 후
RestaurantService
Restaurant restaurant = requestDto.toEntity();
2. Meeting Entity
마찬가지로 Meeting Entity에서 Dto에 의존하고 있다. Entity는 Dto 존재를 몰라야 한다. Entity는 최대한 깔끔하게 두어야 한다.
2.1 수정 전
2.2 수정 후
MeetingCreatRequestDto
public Meeting toEntity(User user) {
return Meeting.builder()
.user(user)
.meetingTitle(meetingTitle)
.restaurant(restaurant)
.restaurantId(restaurantId)
.startDate(startDate)
.endDate(endDate)
.meetingDate(meetingDate)
.location(location)
.limitPeople(limitPeople)
.nowPeople(nowPeople)
.content(content)
.build();
}