第1章介绍了 高阶函数 的概念,并展示了将函数作为参数传递给其他函数的方法。不过,这里使用的例子可能与你日常写的“真实”代码相去甚远。在本章中,我们会围绕一个已经存在且面向对象的API,展示如何使用高阶函数将其以小巧且函数式的方式进行封装。
Core Image是一个强大的图像处理框架,但是它的API有时可能略显笨拙。Core Image的API是弱类型的——我们通过键值编码(KⅤC)来配置图像滤镜(filter)。在使用参数的类型或名字时,我们都使用字符串来进行表示,这十分容易出错,极有可能导致运行时错误。而我们开发的新API将会利用 类型 来避免这些原因导致的运行时错误,最终我们将得到一组类型安全而且高度模块化的API。
即使你不熟悉Core Image,或者不能完全理解本章代码片段的细节,也大可不必担心。我们的目标并不是围绕Core Image构建一个完整的封装,而是要说明如何把像高阶函数这样的函数式编程概念运用到实际的生产代码中。