Java 避免不在场陈述
我如何重构这个示例以避免这种需要检查每个数据类型是否存在的情况?有什么我可以遵循的模式吗Java 避免不在场陈述,java,design-patterns,isinstance,Java,Design Patterns,Isinstance,我如何重构这个示例以避免这种需要检查每个数据类型是否存在的情况?有什么我可以遵循的模式吗 public interface GenericData {} public interface IntegerData extends GenericData{ public Integer Data(); } public interface StringData extends GenericData{ public String Data(); } public interfa
public interface GenericData {}
public interface IntegerData extends GenericData{
public Integer Data();
}
public interface StringData extends GenericData{
public String Data();
}
public interface Client {
public boolean LoadData(GenericData data);
}
public class IntegerClientImpl implements Client{
public boolean LoadData(GenericData data){
return IntegerData.class.isInstance(data);
};
}
你可以使用泛型
public interface Client<Data extends GenericData> {
public boolean LoadData(Data data);
}
public class IntegerClientImpl implements Client<IntegerData> {
@Override
public boolean LoadData(IntegerData data){
// ...
}
}
公共接口客户端{
公共布尔加载数据(数据);
}
公共类IntegerClientImpl实现客户端{
@凌驾
公共布尔加载数据(整型数据){
// ...
}
}
我原以为代码结构会有一些重大变化,但java让它变得更简单了。。。呵呵