Fluent API ,流畅API, 也称作流式API。
Fluent API 是一种面向对象的API,主要基于方法链。
这个概念由Eric Evans​和​Martin Fowler​于 2005 年创建, 旨在通过创建特定领域语言(DSL)来提高代码的可读性。

流畅API的好处是不需要记住接下来的步骤和方法, 允许一个自然连续的序列。

Fluent API 的组成

一般来说, Fluent API 包括:

  1. 最终的对象或结果,总的来说,fluent-API 类似于构建器模式,但最强大的动态与 DSL 相结合。在这两种情况下,结果往往是代表流程或新实体结果的实例。
  2. 选项:在这种情况下,是将用作“我们的交互式菜单”的接口或类的集合。从一个动作来看,这个想法是按照直观的顺序只显示下一步可用的选项。
  3. 结果:在所有这个过程之后,答案可能会或可能不会导致实体、策略等的实例。关键点是结果必须是有效的。

Java 实现 Fluent 风格的代码

不使用Fluent 风格

在不使用Fluent 风格, 定义一个Usr 类, 有name 和age 两个属性。

public class Usr {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

该类型实例化的代码如下:

     Usr usr = new Usr();usr.setName("张三");usr.setAge(20);

使用Fluent 风格

使用Fluent 风格的类定义如下:

public class Usr {private String name;private int age;public String getName() {return name;}public Usr setName(String name) {this.name = name;return this;}public int getAge() {return age;}public Usr setAge(int age) {this.age = age;return this;}public static Usr build() {return new Usr();}}
Usr usr = Usr.build().setName("张三").setAge(20);

Java 中的Fluent API

Java有很多组件提供了流式API 。

  • JDOQ 框架。 Java和关系数据库之间的通信
Query query = create.select(BOOK.TITLE, AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME).from(BOOK).join(AUTHOR).on(BOOK.AUTHOR_ID.eq(AUTHOR.ID)).where(BOOK.PUBLISHED_IN.eq(1948));String sql = query.getSQL();
List<Object> bindValues = query.getBindValues();
  • Jakarta NoSQL, Java操作非关系型数据库
DocumentQuery query = select().from("Person").where(eq(Document.of("_id", id))).build();
Optional<Person> person = documentTemplate.singleResult(query);
System.out.println("Entity found: " + person);
  • Java Stream API
  • Java Time API
  • JPA Query Builder
  • Lombok builders


Fluent API — 流畅API(基于Java介绍)相关推荐

  1. 直播api接口java_基于JAVA的电视台直播节目时间表api调用代码实例

    代码描述:基于JAVA的电视台直播节目时间表api调用代码实例 接口地址:http://www.juhe.cn/docs/api/id/129 1.[代码][Java]代码 import java.i ...

  2. 基于Java的Zabbix二次开发-----Zabbix的Api接口实例

    博主之前的文章配置好了Zabbix环境,正常启动Zabbix服务端,并成功监控客户端服务器的情况,如有疑问,下方传送门: centos7下安装Zabbix服务端 Windows下安装Zabbix客户端 ...

  3. 一款基于 Java 的可视化 HTTP API 接口开发神器

    今天推荐的 5 个项目是: magic-api :一款基于 Java 的可视化 HTTP API 接口开发神器. LanguageTool : 一款基于 Java 语言编写的开源语言校正工具. toB ...

  4. 外汇汇率接口 java_基于JAVA的货币汇率api调用代码实例

    代码描述:基于JAVA的货币汇率api调用代码实例 关联数据:货币汇率 接口地址:http://www.juhe.cn/docs/api/id/23 1.[代码][Java]代码 import jav ...

  5. api有哪些 javasocket_基于java的socket编程及API解析

    一.socket通讯过程 1.socket与socket编程简介: socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台 ...

  6. 基于java的圆通快递单号自动识别api接口代码实例

    一.产品介绍 快递单号识别,输入运单号自动识别物流公司,实时返回对应物流公司编码.查询单号时,返回的结果可能存在一个或多个物流公司编码,快递鸟大数据平台通过智能分析,实时更新单号库,保障物流公司编码准 ...

  7. java查询序列_基于JAVA的苹果序列号查询api调用代码实例

    代码描述:基于JAVA的苹果序列号查询api调用代码实例 关联数据:苹果序列号 接口地址:http://www.juhe.cn/docs/api/id/37 1.[代码][Java]代码 import ...

  8. XDoc 基于Java注释生成API文档

    XDoc 基于Java注释生成API文档 <!--加入maven依赖--> <dependency><groupId>com.github.treeleafj< ...

  9. java 获取邮编_基于JAVA的根据地名查邮编api调用代码实例

    代码描述:基于JAVA的根据地名查邮编api调用代码实例 接口地址:http://www.juhe.cn/docs/api/id/66 1.[代码][Java]代码 import java.io.Bu ...

最新文章

  1. C语言第一次博客作业——输入输出格式
  2. ACL20 Best Paper揭晓!NLP模型评价体系或将迎来重大转折
  3. 单缸发动机扭矩动力学计算:理论计算virtual.lab motion仿真
  4. “UNIX的名字是我起的”——对话UNIX开发者Brian W. Kernighan
  5. Android定时器AlarmManager(定时发送广播)
  6. 锐捷客户端开热点之秘诀
  7. 模糊综合评价(清风建模学习笔记)
  8. java星号心形代码_用符号拼一个完整的大爱心 它起源于中国的甲骨文的心字
  9. Pyinstaller 打包exe运行时找不到源码,函数 错误 OSError: could not get source code
  10. 实验2linux系统使用,实验2:Linux操作系统基本操作 - 图文
  11. 别人犯错给自己的警醒(二):人取得成就之后很容易膨胀
  12. cesium添加填充_项目中的一个关于cesium的边界线的问题
  13. 新媒体运营教程:教你如何写推广策划案?
  14. 以下对linux中线程描述错误的是,2008年9月全国计算机等级三级PC技术真题
  15. line-height含义
  16. BZOJ:3441 乌鸦喝水
  17. C++学习需要看的书籍
  18. PHP统计总访问量和访客数
  19. mysql insert 1366_mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value
  20. FinalData 数据恢复

热门文章

  1. linux下.so、.ko、.a的区别
  2. WinCEService项目
  3. SQL Sever2008 无法启动
  4. C语言中,两整数相除,若分母为零,则会出现怎样的结果???
  5. [VTK]VTK的三维模型保存、读取之保存为vtk格式
  6. 《当程序员的那些狗日日子》(五十四)转折
  7. 关于Hive中case when不准使用子查询的解决方法
  8. 【报告分享】2021全球10大金融科技趋势-蚂蚁集团.pdf(附下载链接)
  9. 基于评论文本的深度推荐系统总结
  10. 【报告分享】2019应届生求职趋势报告.pdf(附下载链接)