策略模式:用于针对不同的场景实现不同的处理。
设计场景:我们需要对数据进行校验,但是需要针对不同的数据类型做不同的校验。
首先,我们要创建一个校验的接口。
public interface Validator {
<T> boolean validate(T t);
}
然后,我们实现校验接口实现一些校验规则。我写了字符串校验和日期校验。
public class StringValidator implements Validator {
@Override
public <T> boolean validate(T t) {
String vaidateStr = (String) t;
return Objects.nonNull(vaidateStr) && vaidateStr.startsWith("PRD");
}
}
public class DateValidate implements Validator {
@Override
public <T> boolean validate(T t) {
Date validateDate = (Date) t;
return Objects.nonNull(validateDate) && validateDate.after(new Date());
}
}
然后,我们去根据场景调用不同的校验规则即可。
public class Main {
pub