一、业务场景
项目中维护了一套标签表,主要是对用户的属性进行不同标签属性的组合,根据组合结果,反馈不同的组合标签答案。
现在需要提供一个接口,根据传入的属性标签值,与预定的组合标签进行匹配。比如用户有生日属性标签,我们通过将用户的生日与当前日(today)进行比对,得到用户生日是否是当天,如果是则推送生日祝福及生日活动给用户。
因为属性标签是根据不同活动临时定义的,举办不同的活动可能接口传入的属性都不一样,例如传入的用户生日,我们需要经过比对,判断是否是当天;出入的用户年龄,我们需要经过比对,判断出用户的年龄分组……
二、代码实现
1、创建工厂方法接口
所有实体类都有共同的方法。那么我们就可以通过抽象出来一个接口来实现
package com.factory;
/**
*工厂接口方法
*/
public interface TagValueFormat {
String format(String str);
}
2、创建实体类
创建生日日期实体类,将传入的生日转换成“当天”或“非当天”标签
创建年龄分组实体类,将传入的年龄转换成“老年”、“中年”、“青年”、“少儿”
package com.formatclass;
imp