我在学习 DSL 时遇到了流利的 API。
我在 fluent API 上进行了很多搜索……我可以得出的基本结论是,流畅的 API 使用方法链接来使代码流畅。
但我无法理解——在面向对象的语言中,我们总是可以创建一个对象并调用与之相关的方法。那么 fluent API 有什么不同呢?流畅的 API 还添加了哪些其他功能?
问问题
1092 次
2 回答
2
使用流畅的接口,您可以编写返回调用该方法的对象(通常是self或this)的方法,并将传统的返回值作为该对象中的状态更改来处理。如果您查看一些使用流式接口的 Javascript 库,它可以更轻松地处理列表和空值,因为它们可以像处理单个对象一样处理。流畅接口的缺点是它们倾向于创建具有一大堆职责的单体上帝对象。
我不希望它们在任何地方都被使用(因为上帝对象问题),但它们时不时地很好。
于 2010-05-26T06:43:45.347 回答
1
您的问题已在Martin Fowler 的原始 Fluent Interface 博客文章中得到解答。关键是 fluent API 的流畅性来自于特定领域语言的领域,而不仅仅是方法链。
于 2010-05-30T21:44:04.680 回答