Fluent API — 流畅API(基于Java介绍)
Fluent API ,流畅API, 也称作流式API。
Fluent API 是一种面向对象的API,主要基于方法链。
这个概念由Eric Evans和Martin Fowler于 2005 年创建, 旨在通过创建特定领域语言(DSL)来提高代码的可读性。
流畅API的好处是不需要记住接下来的步骤和方法, 允许一个自然连续的序列。
Fluent API 的组成
一般来说, Fluent API 包括:
- 最终的对象或结果,总的来说,fluent-API 类似于构建器模式,但最强大的动态与 DSL 相结合。在这两种情况下,结果往往是代表流程或新实体结果的实例。
- 选项:在这种情况下,是将用作“我们的交互式菜单”的接口或类的集合。从一个动作来看,这个想法是按照直观的顺序只显示下一步可用的选项。
- 结果:在所有这个过程之后,答案可能会或可能不会导致实体、策略等的实例。关键点是结果必须是有效的。
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介绍)相关推荐
- 直播api接口java_基于JAVA的电视台直播节目时间表api调用代码实例
代码描述:基于JAVA的电视台直播节目时间表api调用代码实例 接口地址:http://www.juhe.cn/docs/api/id/129 1.[代码][Java]代码 import java.i ...
- 基于Java的Zabbix二次开发-----Zabbix的Api接口实例
博主之前的文章配置好了Zabbix环境,正常启动Zabbix服务端,并成功监控客户端服务器的情况,如有疑问,下方传送门: centos7下安装Zabbix服务端 Windows下安装Zabbix客户端 ...
- 一款基于 Java 的可视化 HTTP API 接口开发神器
今天推荐的 5 个项目是: magic-api :一款基于 Java 的可视化 HTTP API 接口开发神器. LanguageTool : 一款基于 Java 语言编写的开源语言校正工具. toB ...
- 外汇汇率接口 java_基于JAVA的货币汇率api调用代码实例
代码描述:基于JAVA的货币汇率api调用代码实例 关联数据:货币汇率 接口地址:http://www.juhe.cn/docs/api/id/23 1.[代码][Java]代码 import jav ...
- api有哪些 javasocket_基于java的socket编程及API解析
一.socket通讯过程 1.socket与socket编程简介: socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台 ...
- 基于java的圆通快递单号自动识别api接口代码实例
一.产品介绍 快递单号识别,输入运单号自动识别物流公司,实时返回对应物流公司编码.查询单号时,返回的结果可能存在一个或多个物流公司编码,快递鸟大数据平台通过智能分析,实时更新单号库,保障物流公司编码准 ...
- java查询序列_基于JAVA的苹果序列号查询api调用代码实例
代码描述:基于JAVA的苹果序列号查询api调用代码实例 关联数据:苹果序列号 接口地址:http://www.juhe.cn/docs/api/id/37 1.[代码][Java]代码 import ...
- XDoc 基于Java注释生成API文档
XDoc 基于Java注释生成API文档 <!--加入maven依赖--> <dependency><groupId>com.github.treeleafj< ...
- java 获取邮编_基于JAVA的根据地名查邮编api调用代码实例
代码描述:基于JAVA的根据地名查邮编api调用代码实例 接口地址:http://www.juhe.cn/docs/api/id/66 1.[代码][Java]代码 import java.io.Bu ...
最新文章
- C语言第一次博客作业——输入输出格式
- ACL20 Best Paper揭晓!NLP模型评价体系或将迎来重大转折
- 单缸发动机扭矩动力学计算:理论计算virtual.lab motion仿真
- “UNIX的名字是我起的”——对话UNIX开发者Brian W. Kernighan
- Android定时器AlarmManager(定时发送广播)
- 锐捷客户端开热点之秘诀
- 模糊综合评价(清风建模学习笔记)
- java星号心形代码_用符号拼一个完整的大爱心 它起源于中国的甲骨文的心字
- Pyinstaller 打包exe运行时找不到源码,函数 错误 OSError: could not get source code
- 实验2linux系统使用,实验2:Linux操作系统基本操作 - 图文
- 别人犯错给自己的警醒(二):人取得成就之后很容易膨胀
- cesium添加填充_项目中的一个关于cesium的边界线的问题
- 新媒体运营教程:教你如何写推广策划案?
- 以下对linux中线程描述错误的是,2008年9月全国计算机等级三级PC技术真题
- line-height含义
- BZOJ:3441 乌鸦喝水
- C++学习需要看的书籍
- PHP统计总访问量和访客数
- mysql insert 1366_mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value
- FinalData 数据恢复