在java中实现映射器的最佳方法是什么?

时间:2012-12-29 03:43:11

标签: java design-patterns

我有三个请求对象,名为Request1To,Request2To,Request3To。 我希望有一个方法可以接收任何这些TO并返回一个响应对象。 我目前已经实现了这样的

class Mapper{
     public ResponseTo mapRequest1(Request1To){

      }

     public ResponseTo mapRequest2(Request2To){

      }

    public ResponseTo mapRequest3(Request3To){

      }

}

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

3 个答案:

答案 0 :(得分:4)

查看Dozermodelmapper。它们都是将一个对象映射到另一个对象的出色工具。我知道Dozer与Spring集成在一起。在Dozer中,您的代码看起来像这样:

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

它非常强大且易于使用。

答案 1 :(得分:0)

不知道那些对象是什么样的......只需创建一个他们都实现的Request接口。然后mapRequest方法将接受接口而不是具体类。

答案 2 :(得分: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();

  }
}
相关问题