首页 > 其他 > 详细

充血枚举的用法

时间:2020-07-21 12:28:08      阅读:92      评论:0      收藏:0      [点我收藏+]

1.写个简单的证件类型转换的充血枚举

调用处

TransitionCertiUtils.setTypeDesc(certiType,application);

2.工具类

public class TransitionCertiUtils {
    private static final CertiType c = CertiType.getInstance();

    //中文描述转换为码值
    public static void setTypeDesc(String type, Application application){
        TransCertiType.valueOf(c.certiMap.get(type)).getInteface().transCertiType(application);
    }
}

3.单例模式创建并初始化证件类型的map集合

public class CertiType {
    //私有静态对象,加载不做初始化
    private static CertiType m_intance = null;
    public CoreServiceTypeMap certiMap = new CoreServiceTypeMap();

    //构造方法,给map设置初始值
    private CertiType(){
        setTypeForCerti();
    }

    //静态方法创建实体类
    synchronized public static CertiType getInstance(){
        if (m_intance == null){
            m_intance = new CertiType();
        }
        return m_intance;
    }

    //设置初始值
    private void setTypeForCerti() {
        certiMap.put("1","one");//1营业执照号码
        certiMap.put("2","two");//2组织机构代码
    }
}

4.枚举类的创建

public enum TransCertiType{
    one("营业执照号码",TransCertiTypeEnumInterface.byTransOne()),
    two("组织机构代码",TransCertiTypeEnumInterface.byTransTwo()),

    String memo;
    TransCertiTypeEnumInterface inteface;
    TransCertiType(String memo, TransCertiTypeEnumInterface inteface) {
        this.memo = memo;
        this.inteface = inteface;
    }
//setter和getter方法...
}

5.枚举方法的内部实现

public interface TransCertiTypeEnumInterface {
    public void transCertiType(Application application);

    public static TransCertiTypeEnumInterface byTransOne() {
        return new TransCertiTypeEnumInterface() {
            @Override
            public void transCertiType(Application application) {
                application.setCertTypeDesc("营业执照号码");
            }
        };
    }

    ;

    public static TransCertiTypeEnumInterface byTransTwo() {
        return new TransCertiTypeEnumInterface() {
            @Override
            public void transCertiType(Application application) {
                application.setCertTypeDesc("组织机构代码");
            }
        };
    }

    ;
}

6.总结,使用充血枚举可以把大量不同码值对应不同操作的代码规整,适用于多平台复用同一套代码等情况

充血枚举的用法

原文:https://www.cnblogs.com/bin-zhao/p/13353703.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!