1 定义接口
import java.util.List;
import java.util.Map;
public interface BaseConfig {
boolean match(String fileName);
Boolean existHead();
}
2 定义实现类
public class TradeCodeManyLineRbtrConfig extends BaseConfig {
@Override
public Boolean existHead() {
return Boolean.TRUE;
}
@Override
public boolean match(String fileName) {
return Pattern.matches(INCRBTR_FILE_REGEX, fileName);
}
}
3 配置实现类
4 定义工厂
import java.util.Iterator;
import java.util.ServiceLoader;
public class FileParserConfigFactory {
private FileParserConfigFactory() {}
public static BaseConfig getFileParserConfig(String fileName) {
ServiceLoader<BaseConfig> serviceLoader =
ServiceLoader.load(BaseConfig.class);
Iterator<BaseConfig> it = serviceLoader.iterator();
while (it.hasNext()) {
BaseConfig service = it.next();
if (service.match(fileName)) {
return service;
}
}
return null;
}
}
标签:java,ServiceLoader,BaseConfig,fileName,使用,import,public From: https://www.cnblogs.com/ladeng19/p/16994167.html