-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
실제 퍼사드 패턴과는 차이가 있습니다.
서버 코드
현재 코드에서는 각 service가 필요한 repository를 불러오는 구조로 돼 있음
예시
public class OrderServiceImpl implements OrderService {
...
private final StoreRepository storeRepository;
...
}public class StoreServiceImpl implements StoreService {
...
private final StoreRepository storeRepository;
...
}그러다 보니 각각의 service코드 내부에 storeRepository.findById(storeId)와 같이 중복 코드를 작성하게 됨
아이디어
퍼사드 패턴의 개념을 가져오게 됨
위의 사진으로 설명하자면 클라이언트는 퍼사드를 통해서 복잡한 구조를 이해할 필요가 없음
서비스는 레퍼지토리를 자세히 알 필요가 있을까? 라는 아이디어에서 출발
해결 (?)
예시
public class StoreServiceFacade {
private final StoreRepository storeRepository;
public Store getStoreById(Long storeId) {
return storeRepository.findById(storeId)
.orElseThrow(() -> new BusinessLogicException(ExceptionCode.STORE_NOT_FOUND));
}
}퍼사드클래스를 생성하고 레퍼지토리와 관련된 로직을 구현
현재 진행
- 모든 레포지토리가 설명한 것 처럼 바뀌지 않음
- 더 이상
service가 직접적으로repository를import하지 않으면 이슈 close 부탁
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation