0
我們有多個RESTful服務需要JAXB與域對象之間的對象映射,反之亦然。將JAXB綁定到域對象的設計模式,反之亦然
我的想法來定義類似如下的通用接口。 //映射器接口
public interface Mapper{
Object toDomainObject(Object jaxb);
Object toClientObject(Object domain);
}
// RecorderMapper類 - 實現映射器接口
public class RecorderMapper implements Mapper{
@Override
public Object toDomainObject(Object obj) {
JAXBRecorderRequest jAXBRecorderRequest = (JAXBRecorderRequest)obj;
RecorderDomain recorderDomain = new RecorderDomain();
//map to jaxb to domain
return recorderDomain;
}
@Override
public Object toClientObject(Object obj) {
RecorderDomain recorderDomain = (RecorderDomain)obj;
JAXBRecorderResponse jaxbRecorderResponse = new JAXBRecorderResponse();
//map domain to jaxb
return jaxbRecorderResponse;
}
}
//錄像機的服務類 - 用來對象映射的映射器
public class Recorder Service {
@Autowired
private Mapper mapper;
public JAXBRecorderResponse create(JAXBRecorderRequest jaxbRecorderRequest){
RecorderDomain recorderDomain =(RecorderDomain) mapper.toDomainObject(jaxbRequest);
return (JAXBRecorderResponse)mapper.toClientObject(recorderDomain);
}
}
的主要思想是定義一個通用模式來在團隊中實現對象映射。
我不知道是否有更好的方法。
任何幫助,非常感謝。
我會試試看。謝謝@亞歷克斯 – Arun