巧用枚举

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

猜你喜欢

转载自blog.csdn.net/My_Way666/article/details/108279408