加载中...
流式接口是一种通过方法链让代码读起来接近自然语言的面向对象 API 设计风格。每个方法执行操作后返回对象自身或相关对象,从而把多次调用串联成一条链,常用于构建器、查询和配置等场景以提升可读性。

| 中文名 | 流式接口 |
| 外文名 | Fluent Interface |
| 提出者 | Martin Fowler、Eric Evans |
| 核心技术 | 方法链 |
| 常见搭配 | 构建者模式、内部 DSL |
| 主要目标 | 提升可读性 |
流式接口(Fluent Interface)是一种 API 设计风格,通过让方法返回一个可继续调用的对象,把一系列操作以链式书写连接起来,使调用代码读起来更像描述意图的自然语言。该术语由 Martin Fowler 与 Eric Evans 提出。
流式接口的核心是方法链(method chaining):对象的每个方法在完成设置或转换后返回 this 或另一个上下文对象,调用者便可紧接着调用下一个方法,无需反复引用变量。这种写法把原本零散的多条语句压缩成一条连贯表达式,强调可读性与表达力,常与构建者模式、领域特定语言(内部 DSL)结合使用。
流式接口广泛见于构建器(如字符串、HTTP 请求、SQL 查询的构造)、测试断言库、配置构建、ORM 与查询构造器、以及各类内部 DSL。前端与后端框架大量采用它来提供简洁可读的链式配置,例如集合处理的过滤、映射、排序链,或 mock/断言框架的语义化链。
问:流式接口和构建者模式是一回事吗?答:不是。构建者模式是分步构造复杂对象的结构性模式,流式接口只是一种让 API 读起来连贯的书写风格;二者常一起使用,但流式接口也可脱离构建者单独应用。
问:流式接口有什么缺点?答:较长的链在调试时难以在中间设断点或观察中间值,链中若混入有副作用或返回值不一致的方法会造成困惑,且不当设计可能让错误的调用顺序不易被编译期发现。

| 中文名 | 流式接口 |
| 外文名 | Fluent Interface |
| 提出者 | Martin Fowler、Eric Evans |
| 核心技术 | 方法链 |
| 常见搭配 | 构建者模式、内部 DSL |
| 主要目标 | 提升可读性 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧