Java 方法链接与fluent接口的区别
我想知道方法链接和fluent接口之间的确切区别。 据我所知,方法链接只是运行前面方法返回对象的方法,同时避免临时变量。 这方面的一个例子可能是Java 方法链接与fluent接口的区别,java,design-patterns,anti-patterns,Java,Design Patterns,Anti Patterns,我想知道方法链接和fluent接口之间的确切区别。 据我所知,方法链接只是运行前面方法返回对象的方法,同时避免临时变量。 这方面的一个例子可能是 Integer.parseInt(str).intValue() 对于fluent接口,对象的每个方法都由一个点链接,而不必与前面的方法关联 这两种技术使修饰符方法返回到宿主对象,因此可以在一个表达式中调用多个修饰符,如下所示: new Car().StartsEngine().OpenWindow() 这是正确的吗?我认为没有什么大的区别;或者说
Integer.parseInt(str).intValue()
对于fluent接口,对象的每个方法都由一个点链接,而不必与前面的方法关联
这两种技术使修饰符方法返回到宿主对象,因此可以在一个表达式中调用多个修饰符,如下所示:
new Car().StartsEngine().OpenWindow()
这是正确的吗?我认为没有什么大的区别;或者说,这两个概念处于不同的层次。方法链接是一件简单的事情,您可以直接对另一个方法的返回值调用一个方法
fluent接口是一种设计API的风格,用于执行多步骤、复杂的操作,使其读起来更接近散文。将通过方法链接使用流畅的界面。它可以在每次调用中使用相同的可变对象,也可以每次返回一个新的不可变对象,这取决于接口作者认为什么是好主意。可以通过方法链接实现流畅接口,但所有方法链接都是流畅接口。 在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();
. 还要检查Martin Fowler文章的参考文献。你的意思是不是所有的方法链接都是流畅的接口。