【发布时间】:2017-12-18 03:23:05
【问题描述】:
我正在编写一个基本上读取文本文件(表格格式)并检查文件是否包含预期数据类型的代码。为此,我写了以下课程。
示例文件是这样的。
name age
abc 20
xyz vf
aaa 22
我有 JSON 文件,上面写着,哪个列应该包含什么?
{
filename:"test.txt",
cols:{
name:string,
age: int
}
}
JSON 文件包含每一行的 DataType,所以我知道会发生什么?
以下代码正常工作。但是,该代码似乎违反了开放封闭和接口隔离的原则。
public class DataValidation {
public boolean isInt(String value) {
try {
Integer.parseInt(value);
return true;
} catch (NumberFormatException ne) {
return false;
}
}
public boolean isFloat(String value) {
try {
Float.parseFloat(value);
return true;
} catch (NumberFormatException ne) {
return false;
}
}
}
所以我正在考虑 Refector 如下所述的代码。但是,想知道我会得到什么优势,有没有更好的方法?
public interface DataValidation {
boolean validate(String value);
}
public class IntValidator implements DataValidation {
public boolean validate(String value) {
try{
Integer.parseInt(value);
return true;
}catch (NumberFormatException ne){
return false;
}
}
}
【问题讨论】:
-
Em.... 你想摆脱 JSON 字段的声明类型还是什么?请提供示例。
-
不确定我是否理解您的最后一个问题。你能再解释一下吗?
-
您的数据类型是否仅限于原始数据类型或更多?
-
@Green_Wizard 我试图了解是否有更好的方法来重新编码代码。但是我有一个替代解决方案,我仍然需要编写一个逻辑来匹配每个单元格调用哪个函数。
-
@Gholamali-Irani 是的,所有数据类型都仅限于原始数据类型。
标签: java oop solid-principles