本篇内容介绍了“Java责任链设计模式的应用有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1. 数据流向图【部分】
2. 服务架构图【全部】
3. 关于责任链设计模式在实践中的应用
3.1 部分类图
3.2 部分代码截图
@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责任链设计模式的应用有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/229444.html