我想知道方法链接和流畅界面之间的确切区别。 据我了解,方法链只是运行前一个方法返回对象的方法,同时避免临时变量。 这方面的一个例子可能是
Integer.parseInt(str).intValue()
关于流畅的界面,对象的每个方法都由一个点链接,而不必与之前的方法相关 这两种技术使修饰符方法返回到宿主对象,因此可以在单个表达式中调用多个修饰符,如下所示:
new Car().StartsEngine().OpenWindow()
这是正确的吗?
答案 0 :(得分:2)
我认为不存在重大差异;或者更确切地说,这两个概念处于不同的层次。方法链接是一个简单的事情,你可以直接在另一个方法的返回值上调用方法。
流畅的界面是一种设计API的风格,可以执行多步骤,复杂的操作,使其阅读接近散文。通过方法链将使用流畅的界面。它可以为每个调用使用相同的可变对象,或者每次都可以返回一个新的不可变对象,具体取决于接口作者认为是个好主意。
答案 1 :(得分:1)
Fluent接口可以通过方法链接实现,但所有方法链接都是Fluent接口。 在Fluent接口中,方法链始终返回所有链接方法使用的相同接口。例如:
public interface Car
{
Car StartEngine();
Car OpenWindows();
Car CloseWindows();
Car startAC();
}
现在,Fluent接口通过链接实现,如下所示:
Car hondaCity = new HondaCity();
hondaCity.startEngine().openWindows().closeWindows().startAC();
现在简单的方法链接示例:
Car hondaCity = new HondaCity();
hondaCity.getEngine(). //Get Engine Object
getFilter(). // get Filter Object
cleanFilter();