2

我有三个请求对象,分别称为 Request1To、Request2To、Request3To。我希望有一个方法可以接受这些 TO 中的任何一个并返回一个响应对象。我目前已经这样实施

class Mapper{
     public ResponseTo mapRequest1(Request1To){

      }

     public ResponseTo mapRequest2(Request2To){

      }

    public ResponseTo mapRequest3(Request3To){

      }

}

有没有更好的方法来做到这一点,而不是为每个请求对象创建一个单独的方法?

4

3 回答 3

4

看看Dozermodelmapper。它们都是将一个对象映射到另一个对象的出色工具。我知道 Dozer 与 Spring 集成。在 Dozer 中,您的代码将如下所示:

Mapper mapper = new DozerBeanMapper();
ResponseTo response = mapper.map(request, ResponseTo.class);

它非常强大且非常易于使用。

于 2012-12-29T03:57:13.353 回答
0

不知道更多这些对象是什么样的......只需制作一个它们都实现的 Request 接口。然后 mapRequest 方法将采用接口而不是具体类。

于 2012-12-29T03:49:10.807 回答
0
public interface CustomRequest {


 public ResponseTo convertResponseTo();


}


public class Request1To implements CustomRequest{

    public ResponseTo convertResponseTo(){

     // do the logic and return response

    }

 }


  public class Mapper {


   public ResponseTo mapRequest(CustomRequest request){

      return request.convertResponseTo();

  }
}
于 2012-12-29T03:51:02.500 回答