本篇内容介绍了“Java责任链设计模式的应用有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
@Override public boolean filter(List<String> handlerList) { List<DynamicRecord> dynamicRecords = handlerList.stream().filter(data -> dynamicData.test(data)) .map(data -> DynamicFormatUtil.toDataRecord(data)).collect(Collectors.toList()); List<StaticRecord> staticRecords = handlerList.stream().filter(data -> staticData.test(data)) .map(data -> StaticFormatUtil.toDataRecord(data)).collect(Collectors.toList()); try { if (!CollectionUtils.isEmpty(dynamicRecords)) { filterDynamic(dynamicRecords); } if (!CollectionUtils.isEmpty(staticRecords)) { writeAfterFilterStatic(staticRecords); } return true; } catch (Exception e) { log.info("filter data exception {}", e); return false; } } private void filterDynamic(List<DynamicRecord> dynamicRecords) { dynamicFilterChain.doFilters(dynamicRecords); } @Override public void doFilters(List<DynamicRecord> record) { List<Filtered> filtereds = new ArrayList<>(); List<FilteredReason> filteredReasons = new ArrayList<>(); List<AfterFilter> afterFilters = new ArrayList<>(); List<DynamicRecord> afterFilterRecords = new ArrayList<>(); record.forEach(dynamicRecord -> this .startFilter(dynamicRecord, filtereds, filteredReasons, afterFilterRecords)); if (!CollectionUtils.isEmpty(afterFilterRecords)) { //TODO 保存过滤后的数据 saveDataHub(afterFilterRecords); } if (!CollectionUtils.isEmpty(filtereds)) { //TODO 保存 过滤数据 } if (!CollectionUtils.isEmpty(filteredReasons)) { //TODO 保存过滤原因 } }@Service@Slf4jpublic class AccelerationFilter implements DynamicFilter { @Override public FilterResult doFilter(DynamicRecord data, DynamicFilterChain filterChain, FilterResult filterResult, EnumFilter enumFilter) { return null; }}
“Java责任链设计模式的应用有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。