Kestrel combinator并不是一种传统的设计模式,这个叫法是在1985年出版的To Mock the Mockingbird这本书里提到的,可以参考Scala in action作者引用的资源地址详细了解这种模式,其中的例子使用的是Ruby语言。我理解这种模式的意义主要是产生副作用,即在不改变原有类或对象定义的情况下,使用一段附加函数体来达到产生副作用的目的。
这种模式在不同的语言里实现的方式也不一样。下面的一个例子来自Scala in action,其中使用了Scala的隐式转换(Implicit Conversion)特性来实现Kestrel combinator: