中午看 lodash 文档时发现,lodash 除了内部方法,另有一个 fp 包。fp 包是 functional programming 缩写,也就是说 lodash 做了函数式编程的实现。想到这里看了下函数柯里化,然后想到了构造器模式,因为这两者实在是太像了。所以就想到了这个问题:
既然实现上可以互相代替,那么函数柯里化和构造器模式区别在哪里?有没有不能相互替代的场景?
答案是有的,和大佬交流后总结下能想到两个方面:
- 作为函数式编程的参数,柯里化可以,builder 不可以
- 作为高并发状态下的方法,柯里化是原子操作,不会有并发问题;而 builder 链式操作,可能会产生并发和冲突。
参考资料