首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象转换的设计模式(java)

对象转换的设计模式(java)
EN

Software Engineering用户
提问于 2013-01-30 23:48:37
回答 1查看 46.5K关注 0票数 21

除了偶尔的工厂和MVC之外,我不经常使用设计模式,我想开始更多地使用它们。

我手头有一个具体的案例,我想请你在这个案例中使用设计模式的意见。

在我的应用程序中,我必须经常在不同的情况下转换对象。我可能不得不将Hibernate POJO转换为DTO,因为我使用GWT和Hibernate POJO是不可串行化的,不能通过行发送。

在另一种情况下,我可能需要将Java对象转换为SolrInputDocument,以便通过Solr进行索引。

我想知道我是否应该使用设计模式。“对象转换”似乎是一种通用任务,可以通过模式以灵活/抽象的方式处理,但我不太明白如何处理。

如果没有模式,我将为每种类型的转换创建一个单独的类,例如CourseToSolrInputDocument (当然是我的应用程序中的Hibernate实体)。或CourseToCourseDTO.这些转换类中的每一个都可能有一个名为convert()的静态方法,它将源对象作为输入并返回输出对象。

但这并不是一种模式,对吗?因此,我开始使用泛型,并创建了实现转换器接口的类。但不知何故,tgo觉得自己很傻,创建了一个通用界面,除了能够祝贺自己使用泛型之外,我并没有真正看到其他好处。

代码语言:javascript
复制
public class CourseToSolrInputDocument implements Converter<Course, SolrInputDocument>         {
    @Override
    public void convert(Course source, SolrInputDocument destination) {
        //To change body of implemented methods use File | Settings | File Templates.
    }
}

所以,这里真正的问题是:是否有一种模式适用于泛型对象转换,您的方法是什么,与仅使用每类转换类型的方法相比有什么优势?

EN

回答 1

Software Engineering用户

发布于 2013-01-31 00:04:30

翻译器模式是你想要的。

但我怀疑你想要的是一个框架,而不仅仅是一个模式。我相信杜泽尔在Java世界很受欢迎。

票数 18
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/185343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档