중복된 메서드 줄이는 방법
182
작성한 질문수 16
안녕하세요 선생님 강의 잘 들었습니다!
강의를 통해 배운 내용을 개인 프로젝트에 적용 하던 중 궁금한점이 생겨 질문 드립니다.
private List<Long> getEventIdList(List<EventSimpleInfo> events) {
return events.stream()
.map(EventSimpleInfo::getId)
.toList();
}
private List<Long> getEventIds(List<BookmarkedEventSimpleInfoQuery> events) {
return events.stream()
.map(BookmarkedEventSimpleInfoQuery::getId)
.toList();
}Dto 조회한 두개의 List 입니다.
두 List에서 id 값을 뽑는 같은 행위를 하고 있는데 어떻게 하면 중복을 줄일수 있을지 모르겠습니다.
Dto에 일급 컬렉션을 적용하자니 너무 클래스가 많아 질것 같고,
Dto에 인터페이스를 적용 하자니 Dto에 역할을 부여 하는 것이 맞나? 라는 생각이 듭니다.
다른 방법은 Dto 내부에 로직을 두는 방법도 생각해 보았는데 어떤게 좋을까요?..
쿼리를 줄이기 위해 Dto 조회를 하고 부족한 상태를 조회 하여 값을 채우고 있는데 너무 중복된 행위가
많아서 고민 입니다. 어떻게 해야 할까요?
답변 2
1
안녕하세요, 조희제 님!
Dto에 인터페이스를 적용 하자니 Dto에 역할을 부여 하는 것이 맞나? 라는 생각이 듭니다.
DTO도 Object, 즉 객체인데요. 인터페이스를 적용하는 것이 크게 어색하지는 않다고 생각합니다.
역할을 부여한다기 보다는 객체의 공통적인 특성을 명시하는 것이니까요.
두 DTO의 이름을 보아하니 비슷한 역할을 하는 DTO 같고, 상황에 따라 ID를 추출하는 부분을 인터페이스로 뽑을 수 있을 것 같아요.
추가적으로, 비슷한 DTO가 매우 많다면 이런 고민을 할 수 있겠지만, 2개 정도면 저렇게 private method 추출로도 충분히 핸들링할 수 있다고도 생각합니다. 항상 중복 제거만이 능사는 아니니까요 ㅎㅎ
도움이 되셨기를 바랍니다.
감사합니다 🙂
0
감사합니다! 사실....똑같은 기능이 4~5개가 중복이 있습니다 ㅎㅎ...
어떻게 처리 할지 고민 이였는데 답변 감사합니다.
인터페이스를 적용 해서 개선해보겠습니다. 좋은 하루 되세요!
[강의 질문] 메서드 선언부
0
89
1
[강의 질문] 메서드와 추상화
0
60
2
DIP 개념에 대한 질문입니다.
0
64
1
만약 보드를 이용한 게임의 종류가 더 다양해진다면 어떻게 될 수 있을지에 대한 고민
0
85
2
DIP 설명 후반부에 IOC에 대한 질문 드립니다.
0
78
2
안녕하세요 ! 혹시 자바가 아닌 다른 객체지향 언어를 알고있어도 강의를 들어도 괜찮을까요 ?!
0
70
1
안녕하세요 메서드명 때문에 고민이 있어서 질문드립니다.
1
64
2
자바 record 사용에 대해서 질문 드립니다!
0
126
2
강의 내용 정리 및 자료 제작 툴 문의 드립니다.
0
136
2
사용할 변수 가깝게 선언하기 질문
0
92
1
오버 엔지니어링
0
147
2
학습용 java/spring 오픈소스 추천
1
359
2
MarketPlace에서 Sonarlint 검색이 안됩니다.
0
413
3
isLandMineCell() 메서드 질문
0
208
1
Cell[][]BOARD 매개변수받기
0
152
2
ConsoleInputHandler에서 왜 final붙여야 하는지
0
192
1
정적 생성자 메서드 of, from
0
264
2
Getter관해서
0
148
3
이름 바꾸기
0
129
2
stack 대신 queue 를 사용해 bfs 로 변경해도 되나요??
0
162
2
현업에서 ISP를 도입하려는데 인터페이스 설계에 있어서 의문이 있습니다.
0
206
2
null을 가질 수 있는 값을 인자로 넘겨야 하는 경우
0
249
3
리팩토링을 하고 난 뒤 다시보면 오히려 더 복잡해 보이는것 같은 느낌입니다..
0
251
2
조합 관계에 대해 질문있습니다.
0
164
2





