Table Driven(表驱动)方法实例

实例一:
/**
 * 驾驶人年龄段
 * 保险行业,会对驾驶人的年龄做年龄段的区分判断
 * 驾驶人年龄段:01-[18,25);02-[25,30);03-[30-35);04-[35,40);05-[40,45);06-[45,50);07-[50-55);08-[55,+∞)
 */
public class AgePeriodTest {

    //if...else...方法
    /*
    public static String getAgePeriod(int age) {
        
        String agePeriod = "";
        if (age > 55) {
            agePeriod = "08";
        } else if (age >= 50) {
            agePeriod = "07";
        } else if (age >= 45) {
            agePeriod = "06";
        } else if (age >= 40) {
            agePeriod = "05";
        } else if (age >= 35) {
            agePeriod = "04";
        } else if (age >= 30) {
            agePeriod = "03";
        } else if (age >= 25) {
            agePeriod = "02";
        } else if (age >= 18) {
            agePeriod = "01";
        }
        return agePeriod;
    }
    */
    
    //Table Driven(表驱动)方法
    enum AgePeriod {
        A(55, "08"),   
        B(50, "07"),   
        C(45, "06"),
        D(40, "05"),   
        E(35, "04"),   
        F(30, "03"),   
        G(25, "02"),   
        H(18, "01");    
        
        private int age;   
        private String agePeriod;     
        
        AgePeriod(int age, String agePeriod) {     
            this.age= age;     
            this.agePeriod = agePeriod;   
        } 
    }
    
    public static String getAgePeriod(int age) {
        for (AgePeriod agePeriod : AgePeriod.values()) {
            if (age >= agePeriod.age) {
                return agePeriod.agePeriod;
            }
        }
        return "";
    }
    
    public static void main(String[] args) {
        String res = getAgePeriod(1);
        System.out.println("res:-" + res);
        res = getAgePeriod(18);
        System.out.println("res:01-" + res);
        res = getAgePeriod(24);
        System.out.println("res:01-" + res);
        res = getAgePeriod(25);
        System.out.println("res:02-" + res);
        res = getAgePeriod(29);
        System.out.println("res:02-" + res);
        res = getAgePeriod(30);
        System.out.println("res:03-" + res);
        res = getAgePeriod(34);
        System.out.println("res:03-" + res);
        res = getAgePeriod(35);
        System.out.println("res:04-" + res);
        res = getAgePeriod(39);
        System.out.println("res:04-" + res);
        res = getAgePeriod(40);
        System.out.println("res:05-" + res);
        res = getAgePeriod(44);
        System.out.println("res:05-" + res);
        res = getAgePeriod(45);
        System.out.println("res:06-" + res);
        res = getAgePeriod(49);
        System.out.println("res:06-" + res);
        res = getAgePeriod(50);
        System.out.println("res:07-" + res);
        res = getAgePeriod(54);
        System.out.println("res:07-" + res);
        res = getAgePeriod(55);
        System.out.println("res:08-" + res);
        res = getAgePeriod(59);
        System.out.println("res:08-" + res);
        res = getAgePeriod(60);
        System.out.println("res:08-" + res);
        res = getAgePeriod(100);
        System.out.println("res:08-" + res);
    }
}
运行结果:
res:-
res:01-01
res:01-01
res:02-02
res:02-02
res:03-03
res:03-03
res:04-04
res:04-04
res:05-05
res:05-05
res:06-06
res:06-06
res:07-07
res:07-07
res:08-07
res:08-08
res:08-08
res:08-08
 
实例二:
import java.util.HashMap;
import java.util.Map;

public class TableDriven {

//    public static String convertCertificatTypeToClient(String pasType) {
//        
//        if (pasType.equalsIgnoreCase("01")) {
//            return "1";
//        } else if (pasType.equalsIgnoreCase("02")) {
//            return "2";
//
//        } else if (pasType.equalsIgnoreCase("03")) {
//            return "3";
//
//        } else if (pasType.equalsIgnoreCase("04")) {
//            return "7";
//
//        } else if (pasType.equalsIgnoreCase("05")) {
//            return "6";
//
//        } else if (pasType.equalsIgnoreCase("06")) {
//            return "0";
//        } else {
//            return "0";
//        }
//    }
    
    public static String convertCertificatTypeToClient(String pasType) {
        
        //表驱动法   
        Map<String, String> stateTable = new HashMap<String, String>();
        stateTable.put("01", "1");
        stateTable.put("02", "2");
        stateTable.put("03", "3");
        stateTable.put("04", "7");
        stateTable.put("05", "6");
        stateTable.put("06", "0");
        
        String res = stateTable.get(pasType);
        if(res == null) {
            res = "0";
        }
        return res;
    }
    
    public static void main(String[] args) {
        String res = convertCertificatTypeToClient("01");
        System.out.println("1:" + res);
        res = convertCertificatTypeToClient("02");
        System.out.println("2:" + res);
        res = convertCertificatTypeToClient("03");
        System.out.println("3:" + res);
        res = convertCertificatTypeToClient("04");
        System.out.println("7:" + res);
        res = convertCertificatTypeToClient("05");
        System.out.println("6:" + res);
        res = convertCertificatTypeToClient("06");
        System.out.println("0:" + res);
        res = convertCertificatTypeToClient("00");
        System.out.println("0:" + res);
    }
}
运行结果:
1:1
2:2
3:3
7:7
6:6
0:0
0:0

你可能感兴趣的:(java,enum,Table Driven,表驱动)