我想知道方法链接和流畅接口之间的确切区别。 据我所知,方法链只是运行以前的方法返回对象的方法,同时避免临时变量。 这种情况的一个例子可以是方法链接和流畅接口之间的区别
Integer.parseInt(str).intValue()
对于流利接口,对象的每个方法由点链的,而无需进行相关的先前的方法 这两种技术使改性方法返回到主机对象,以便可以在如下单个表达式中调用多个修饰符:
new Car().StartsEngine().OpenWindow()
这是正确的吗?
我想知道方法链接和流畅接口之间的确切区别。 据我所知,方法链只是运行以前的方法返回对象的方法,同时避免临时变量。 这种情况的一个例子可以是方法链接和流畅接口之间的区别
Integer.parseInt(str).intValue()
对于流利接口,对象的每个方法由点链的,而无需进行相关的先前的方法 这两种技术使改性方法返回到主机对象,以便可以在如下单个表达式中调用多个修饰符:
new Car().StartsEngine().OpenWindow()
这是正确的吗?
我不认为有一个主要区别;或者说,这两个概念是在不同的层次上。方法链是一种简单的方法,您可以直接对不同方法的返回值调用方法。
流畅的界面是一种设计API的风格,它可以执行多步骤,复杂的操作,以便读起来接近散文。流畅的接口将被用于通过方法链接。它可以为每次调用使用相同的可变对象,也可以每次都返回一个新的不可变对象,具体取决于接口作者认为是一个好主意。
Fluent接口可以通过方法链接来实现,但所有的方法链接都是Fluent接口。 在Fluent接口中,方法链接始终返回所有链接方法使用的接口。例如:
public interface Car
{
Car StartEngine();
Car OpenWindows();
Car CloseWindows();
Car startAC();
}
现在流利接口与链接实现如下:
Car hondaCity = new HondaCity();
hondaCity.startEngine().openWindows().closeWindows().startAC();
现在简单方法链接例如:
Car hondaCity = new HondaCity();
hondaCity.getEngine(). //Get Engine Object
getFilter(). // get Filter Object
cleanFilter();
你的意思是**不**所有的方法链接都是流畅的接口。 – RealSkeptic
http://randomthoughtsonjavaprogramming.blogspot.be/2013 /10/trainwreck-vs-method-chaining.html。另请参阅Martin Fowler文章的参考资料。 –