0
중첩 된 객체가 있습니다. 의는 그들을 부르 자, B와 C중첩 된 객체 매핑 (Java)
public class A {
private String name;
private String desc;
//......{some other fields}
private List<B> bList;
}
public class B {
private String name;
private String desc;
//......{some other fields}
private List<C> cList;
}
public class C {
private String name;
private String desc;
......{some other fields}
}
는 지금은 그 개체의 일부 속성을 매핑 할. A에서 B의 이름과 목록 만 원하고 B에서 C의 목록 만 있고 C에서만 desc의 목록 만 원한다고 가정합시다. 그래서 DTO 개체를 만듭니다.
public class ADTO{
private String name;
List<BDTO> bList;
}
public class BDTO{
List<CDTO> cList;
}
public class CDTO{
private String desc;
}
그리고 수동과 유사한 코드를 CDTO에 ADTO, BDTO에 B와 C에 대한지도 것 :
private ADTO map(A a)
ADTO adto = new ADTO();
List<BDTO> bDTOList = new ArrayList<>();
adto.setName(a.getName());
for (B b : a.getBlist()){
BDTO bdto = new BDTO();
bdto.setCList = map(b.getCList());
bDTOList.add(bdto);
}
adto.setBList(bDTOList);
return adto;
}
private List<CDTO> map(List<C>){
........ANOTHER BORING MAPPING
}
어떤 쉬운 방법이 있나요 (일부 디자인 패턴은 어쩌면) 구현 그런 과업? 깊은 중첩으로 매핑하기 위해 훨씬 더 큰 클래스 나 더 많은 객체가 있다면 어떻게 될지 상상해보십시오. 일부 필드를 표시/숨기기 위해서만 작성하는 코드가 많습니다. 오후 8시 30 분 P.S. 그러한 대상에 대해 최소한 3 가지 다른 "견해"를 작성해야하며 향후 견해의 수는 증가 할 수 있습니다. 그래서 나는 미래에 새로운 "보기"를 더 쉽게 추가 할 수있는 솔루션을 찾고 있습니다.