我有许多相似但略有不同的数据类。从这些课程中我设置了#34;常用字段"其他"特殊领域"取决于班级。我想创建一个设置公共字段的方法(所以我不必为每种数据类型重复代码)。
对,我有这样的事情:
public CommonDataClass getCommonFieldsFromClass1(class1 dataObj) {
CommonDataClass out = new CommonDataClass();
out.SetField1(data.getField1);
return out;
}
public CommonDataClass getCommonFieldsFromClass2(class2 dataObj) {
CommonDataClass out = new CommonDataClass();
out.SetField1(data.getField1);
return out;
}
...
public CommonDataClass getCommonFieldsFromClassN(classN dataObj) {
CommonDataClass out = new CommonDataClass();
out.SetField1(data.getField1);
return out;
}
我想要这样的东西
public CommonDataClass getCommonFields(MysteryClass dataObj) {
CommonDataClass out = new CommonDataClass();
out.SetField1(data.getField1);
return out;
}
答案 0 :(得分:0)
为class1
... classN
引入一个抽象基类,让填充类扩展一个抽象基类填充类,其中包含设置公共字段的代码。
答案 1 :(得分:0)
您可以定义一个接口CommonFieldsInterface
(您应该使用更具描述性的名称),其中包含所有公共字段的getter。所有类似的类都将实现该接口。
另一种选择是所有类似的类都有一个包含公共字段的公共基类,但只有当这些类表示相同通用类型的对象时才适用。
那就是说,您应该考虑是否真的需要创建CommonDataClass
的实例并将字段复制到其中。处理CommonDataClass
字段的每个方法都可以简单地在公共接口或类似类的公共基类中定义。