巧用枚举

原文地址: 原文地址
当我们接收到一些数据需要对其进行处理时,由于它们来自于不同的渠道(如:腾讯,头条),不同渠道所需的处理方式不同
枚举中加属性 匹配到相应rule处理逻辑

public enum ChannelRuleEnum {
     

    /**
     * 头条
     */
    TOUTIAO("TOUTIAO",new TouTiaoChannelRule()),
    /**
     * 腾讯
     */
    TENCENT("TENCENT",new TencentChannelRule()),
    ;

    public String name;

    public GeneralChannelRule channel;

    ChannelRuleEnum(String name, GeneralChannelRule channel) {
     
        this.name = name;
        this.channel = channel;
    }

  //匹配
    public static ChannelRuleEnum match(String name){
     
        ChannelRuleEnum[] values = ChannelRuleEnum.values();
        for (ChannelRuleEnum value : values) {
     
            if(value.name.equals(name)){
     
                return value;
            }
        }
        return null;
    }
    public String getName() {
     
        return name;
    }

    public GeneralChannelRule getChannel() {
     
        return channel;
    }
}

你可能感兴趣的:(java,枚举)