2016-11-30 135 views
0

我有两个独立的子模块可以解析一些数据。一个使用互联网,使用Web服务。结果是一些具有相同变量的DTO。现在我需要在我的主要模块中格式化这些dtos,但是如何在没有重复的情况下做到这一点?我不能使用一些通用模块,它将包含我的子模块使用的接口。如何使用dto从两个独立模块中工作

public static String formatData(submoduleA.DataDto data) { 
//this will be duplicity 
    return ... 
} 

public static String formatData(submoduleB.DataDto data) { 
//this will be duplicity 
    return ... 
} 
+0

你应该为每个模块复制DTO的最佳实践 – cokceken

+0

是啊,现在是怎么样的人。但我不知道如何格式化这2个DTO的没有口音 – hudi

+0

如果你想表示一个复数,正确的方法是:DTOs。单词和s之间的撇号表示所有格单数,例如, DTO的代码。 – mike

回答

0

您可以创建一个抽象基DTO以实现通用功能。您可以在DTO存储从ModuleA和ModuleB

public abstract class BaseDto{ 
    public String formatData() 
} 

public class DataDto extends BaseDto{ 
    public String formatData(){ 
     return ... 
    } 
} 
0

你应该创建一个接口的通用模块和参考,让我们说CommonDataDto,以及对这个接口的代码。

public static String formatData(CommonDataDto data) { 
    String formatted = data.getType() + data.getId(); 
    // ... 
    return formatted; 
} 

此后,您可以HAVA都submoduleA.DataDtosubmoduleB.DataDto实现它,或者,如果你不能改变这些类,创建两个适配器。