FluentInterface是DSL里的重要概念其为业务人员和开发人员搭建了桥梁
假设BA要向开发人员表述构建一个“汽车”对象,传统的方式是这样
Car car = new Car();
car.setFrontWheel(...);
car.setRearWheel(...);
car.setWindow(...);
car.setCeiling(....);
这在JAVA领域很常见,但是这些可恶的set函数对于业务人员太过技术化,而且此类表现很罗嗦
使用fluentinterface后的方式是这样:
Car car = new Car().frontWheel(...)
.rearWheel(...)
.window(...)
.ceiling(...);
这样对于业务人员非常容易理解,并且整个实现显得不是很罗嗦,具体实现类似这样:
public Car ceiling(Ceiling ceiling){
this._ceiling = ceiling;
return this;
}
fluentinterface一般用于复杂对象的初始化工作,比如著名的JMock就使用了fluentinterface。
这样做的最大问题就在于,car已经不再是javabean了。