Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java实现映射器的最佳方法是什么?_Java_Design Patterns - Fatal编程技术网

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

用java实现映射器的最佳方法是什么?,java,design-patterns,Java,Design Patterns,我有三个请求对象,分别称为Request1To、Request2To、Request3To。 我想有一个方法,它接受这些to中的任何一个,并返回一个response对象。 我目前已经实现了这样的功能 class Mapper{ public ResponseTo mapRequest1(Request1To){ } public ResponseTo mapRequest2(Request2To){ } public ResponseT

我有三个请求对象,分别称为Request1To、Request2To、Request3To。 我想有一个方法,它接受这些to中的任何一个,并返回一个response对象。 我目前已经实现了这样的功能

class Mapper{
     public ResponseTo mapRequest1(Request1To){

      }

     public ResponseTo mapRequest2(Request2To){

      }

    public ResponseTo mapRequest3(Request3To){

      }

}

有没有更好的方法来代替为每个请求对象创建单独的方法?

不知道这些对象是什么样的。。。只需创建一个他们都实现的请求接口。然后mapRequest方法将接收接口,而不是具体的类。

不知道这些对象是什么样的。。。只需创建一个他们都实现的请求接口。然后,mapRequest方法将接收接口而不是具体类。

查看和。它们都是将一个对象映射到另一个对象的优秀工具。我知道推土机与弹簧结合在一起。在Dozer中,您的代码将如下所示:

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();

  }
}
Mapper mapper = new DozerBeanMapper();
ResponseTo response = mapper.map(request, ResponseTo.class);
它功能强大,使用方便。

请查看并查看。它们都是将一个对象映射到另一个对象的优秀工具。我知道推土机与弹簧结合在一起。在Dozer中,您的代码将如下所示:

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

它非常强大且易于使用。

每个请求对象的映射都是不同的。我需要在mapRequest方法中使用if条件来查找实例类型,然后执行我不喜欢的映射。每个请求对象的映射都是不同的。我需要在mapRequest方法中使用if条件来查找实例类型为,然后进行我不喜欢的映射。我不想链接if条件。我更改了答案检查。我需要在transferobject中设置映射逻辑,这是我不想做的。因为在transfer object中设置映射逻辑会将其绑定到特定的响应类型。我不想链接if条件。我更改了答案检查我不想在transferobject中使用映射逻辑,因为在transferobject中使用映射逻辑会将它与特定的响应类型联系起来。