用java实现映射器的最佳方法是什么?
我有三个请求对象,分别称为Request1To、Request2To、Request3To。 我想有一个方法,它接受这些to中的任何一个,并返回一个response对象。 我目前已经实现了这样的功能用java实现映射器的最佳方法是什么?,java,design-patterns,Java,Design Patterns,我有三个请求对象,分别称为Request1To、Request2To、Request3To。 我想有一个方法,它接受这些to中的任何一个,并返回一个response对象。 我目前已经实现了这样的功能 class Mapper{ public ResponseTo mapRequest1(Request1To){ } public ResponseTo mapRequest2(Request2To){ } public ResponseT
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中使用映射逻辑会将它与特定的响应类型联系起来。