ファクトリメソッドを使用してswitch文を置き換える
switch , ( , 7 ) ; , , switch , 。
PlanDataTypeタイプ:
package com.test.factory;
public interface PlanDataType {
public boolean isDataTypeValid(String dataType);
}
StringTypeクラス
package com.test.factory;
import org.apache.commons.lang3.StringUtils;
public class StringType implements PlanDataType {
@Override
public boolean isDataTypeValid(String dataType) {
if (StringUtils.isNotBlank(dataType)) {
return true;
}
return false;
}
}
IntegerTypeクラス:
package com.test.factory;
import org.apache.commons.lang3.StringUtils;
public class IntegerType implements PlanDataType {
@Override
public boolean isDataTypeValid(String dataType) {
if (StringUtils.isNumeric(dataType)) {
return true;
}
return false;
}
}
Factoryクラス:
package com.test.factory;
public class Factory {
public static PlanDataType getInstance(String className){
PlanDataType planDataType = null ;
try{
planDataType = (PlanDataType)Class.forName(className).newInstance() ;
}catch(Exception e){
e.printStackTrace() ;
}
return planDataType ;
}
}
PlanDataTypeValidationTestクラス:
package com.test.factory;
public class PlanDataTypeValidationTest {
public static void main(String[] args) {
PlanDataType dataType = Factory.getInstance("com.test.factory.StringType") ;
if(dataType.isDataTypeValid("aaa")){
System.out.println("OK");
}else
{
System.out.println("not ok");
}
}
}
出力:
OK