Open soun997 opened 9 months ago
Recipe domain을 리팩토링한다.
Recipe
update
RecipeMapper
Recipe 엔티티는 연관된 하위의 엔티티들이 많은 편이다.(RecipeDescription, RecipeImage 등등...) 때문에 RecipeMapper의 toEntity 메서드가 매우 크고 뚱뚱하다.
RecipeDescription
RecipeImage
toEntity
default Recipe toEntity(RecipeAddRequest request, Member member) { // TODO: 이 로직이 매핑 로직인지, 서비스 로직인지 모호함, 리팩토링 단계에서 추가적으로 고민 Recipe recipe = Recipe.builder().name(request.name()).member(member).build(); List<RecipeType> recipeTypes = request.recipeType().stream() .map(vegetarianType -> toRecipeType(vegetarianType, recipe)) .toList(); List<RecipeImage> recipeImages = request.imageUrls().stream() .map(imageUrl -> toRecipeImage(imageUrl, recipe)) .toList(); List<RecipeIngredient> ingredients = request.ingredients().stream() .map(ingredient -> toRecipeIngredient(ingredient, recipe)) .toList(); List<RecipeDescription> descriptions = IntStream.range(0, request.descriptions().size()) .mapToObj( idx -> this.toRecipeDescription( idx + 1, request.descriptions().get(idx), recipe)) .toList(); // TODO: update 내부에서 Recipe와 Recipe 하위 엔티티의 관계를 설정하도록 수정 recipe.update(recipeTypes, recipeImages, ingredients, descriptions); return recipe; }
해당 코드들은 mapper의 책임이 맞을까, service의 책임이 맞을까?
Description
Recipe
domain을 리팩토링한다.Todo
Recipe
엔티티update
메서드 리팩토링RecipeMapper
리팩토링ETC
Recipe
엔티티는 연관된 하위의 엔티티들이 많은 편이다.(RecipeDescription
,RecipeImage
등등...) 때문에RecipeMapper
의toEntity
메서드가 매우 크고 뚱뚱하다.해당 코드들은 mapper의 책임이 맞을까, service의 책임이 맞을까?