fluent 接口(链式调用的接口)
介绍
在一些框架中,比如hiberante中,比如配置系统变量时,通常都是链式调用来赋值的.
如下赋值就是链式调用:
Person person = new Person();
person.setId(1)
.setBirthday(LocalDate.of(1991, 10, 7))
.setName("Mark");
借助this关键字来实现.
Java Code 示例
/**
* 尝试写fluent链式接口/类
*
* @author xuyi
* @Time 2016年12月4日 下午2:00:06
* @类名 Person
* @功能描述:
* @春风十里不如你
* @备注:
*/
public class Person
{
private int id;
private String name;
private LocalDate birthday;
public Person setId(int id)
{
this.id = id;
return this;//返回当前对象
}
public Person setName(String name)
{
this.name = name;
return this;//返回当前对象
}
public Person setBirthday(LocalDate birthday)
{
this.birthday = birthday;
return this;//返回当前对象
}
}
总结
借助this关键字可以实现链式调用,这种接口给使用者非常好的体验,很多优秀的框架中都有提供这样的接口.