首页>代码>java小程序:可扩展可复用的数据分析代码设计(读取数据,分析,输出),研究生作业>/OOP-Experiment-1/src/nv/analyzer/AnalyzerBuilder.java
package nv.analyzer; import nv.data.DataStore; import java.util.ArrayList; import java.util.List; /** * 分析方法工厂,通过组合分析方法产生分析链,和执行分析链产生最终分析结果. (创建者模式) * 正常应该把执行链独立出来一个类,但是要求说要放在一起. * 先执行创建,然后附加分析方法,最后执行分析. */ public class AnalyzerBuilder { private List<AnalyzerMethod> analyzerMethodLinks; private AnalyzerBuilder() { } public static AnalyzerBuilder createAnalyzerLinks() { AnalyzerBuilder analyzerBuilder = new AnalyzerBuilder(); analyzerBuilder.analyzerMethodLinks = new ArrayList<AnalyzerMethod>(); return analyzerBuilder; } public AnalyzerBuilder append(AnalyzerMethod analyzerMethod) { analyzerMethodLinks.add(analyzerMethod); return this; } public AnalyzerBuilder insert(AnalyzerMethod analyzerMethod, int index) { analyzerMethodLinks.add(index, analyzerMethod); return this; } /** * 构造仓库数据分析者 * * @return */ public StoreDataAnalyzer build() { return new StoreDataAnalyzer() { @Override public DataStore analy(DataStore dataStore) { DataStore result = null; for (int i = 0; i < analyzerMethodLinks.size(); i++) { result = analyzerMethodLinks.get(i).execute(result == null ? dataStore : result); } return result; } }; } }
最近下载更多
最近浏览更多
uid0901 LV2
4月2日
1195146710 LV4
1月16日
qq1434100519 LV1
2023年11月1日
2017143155 LV12
2023年6月21日
微信网友_6512020493586432 LV2
2023年6月9日
胡明杨
2023年5月4日
暂无贡献等级
guozhihua12 LV3
2023年4月4日
2716804680 LV9
2023年3月23日
科技家 LV2
2023年3月15日
小小虎牙妹 LV4
2023年3月14日