gpt4 book ai didi

java - 对于该策略模式,我是否适本地使用了 Java lambda?

转载 作者:行者123 更新时间:2023-12-02 00:53:44 25 4
gpt4 key购买 nike

我使用 lambda 表达式 + 函数来实现策略模式,我是否正确且适本地使用它?

public void deploy(WatcherConfig config) {
performOnWatch(config, a -> {
deployWatch(a);
return null;
});
}

public void delete(final WatcherConfig config) {
performOnWatch(config, a -> {
deleteWatch(a);
return null;
});
}

public void performOnWatch(WatcherConfig config, Function<WatchConfig, Void> function) {
for (WatchConfig watchConfig : config.getWatchConfigs()) {
List<WatchConfig> realConfigs = WatchUtils.parseWatchParameter(watchConfig);
for(WatchConfig realWatchConfig : realConfigs) {
function.apply(realWatchConfig);
}
}
}

最佳答案

如果您实现 streamWatchConfigs 来替换 getWatchConfigs(可能返回一个集合),则可以使用流简化 performOnWatch 方法:

public void performOnWatch(WatcherConfig config, Consumer<WatchConfig> consumer) {
config.streamWatchConfigs()
.flatMap(WatchUtils::parseWatchParameters)
.forEach(consumer::accept);
}

performOnWatch(config, this::deployWatch);
performOnWatch(config, this::deleteWatch);

关于java - 对于该策略模式,我是否适本地使用了 Java lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com