Callback设计模式在函数式编程语言具有先天性,因为函数被当做第一公民。在Java8之前,使用接口模拟callbacks.
函数编程中重要的几个概念:
(1)Function作为第一类对象(2)纯函数(3)更高阶层函数
函数实例作为引用对象被使用;纯函数类,函数执行过程无side effects,函数结果只依赖传入参数;更高阶函数是接收函数对象作为入参,输出结果也是函数;
/** 纯函数类案例 **/
public class ObjectPureFunction {
public int add(int a, int b) {
return a + b;
}
}
// 返回函数的高阶函数类示例
public class HigherOrderFunctionClass {
public <T> Factory<T> createFactory(IProducer<T> producer, IConfigurator<T> configurator) {
return () -> {
T instance = producer.produce();
configurator.configure(instance);
return instance;
}
}
}