许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Fluent API详解:基于Java的流畅API介绍

Fluent API详解:基于Java的流畅API介绍

阅读数 1
点赞 0
article_banner

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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空