除了偶尔的工厂和MVC之外,我不经常使用设计模式,我想开始更多地使用它们。
我手头有一个具体的案例,我想请你在这个案例中使用设计模式的意见。
在我的应用程序中,我必须经常在不同的情况下转换对象。我可能不得不将Hibernate POJO转换为DTO,因为我使用GWT和Hibernate POJO是不可串行化的,不能通过行发送。
在另一种情况下,我可能需要将Java对象转换为SolrInputDocument,以便通过Solr进行索引。
我想知道我是否应该使用设计模式。“对象转换”似乎是一种通用任务,可以通过模式以灵活/抽象的方式处理,但我不太明白如何处理。
如果没有模式,我将为每种类型的转换创建一个单独的类,例如CourseToSolrInputDocument (当然是我的应用程序中的Hibernate实体)。或CourseToCourseDTO.这些转换类中的每一个都可能有一个名为convert()的静态方法,它将源对象作为输入并返回输出对象。
但这并不是一种模式,对吗?因此,我开始使用泛型,并创建了实现转换器接口的类。但不知何故,tgo觉得自己很傻,创建了一个通用界面,除了能够祝贺自己使用泛型之外,我并没有真正看到其他好处。
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.
}
}所以,这里真正的问题是:是否有一种模式适用于泛型对象转换,您的方法是什么,与仅使用每类转换类型的方法相比有什么优势?
发布于 2013-01-31 00:04:30
翻译器模式是你想要的。
但我怀疑你想要的是一个框架,而不仅仅是一个模式。我相信杜泽尔在Java世界很受欢迎。
https://softwareengineering.stackexchange.com/questions/185343
复制相似问题