2017-07-26 141 views
1

我想知道方法链接和流畅接口之间的确切区别。 据我所知,方法链只是运行以前的方法返回对象的方法,同时避免临时变量。 这种情况的一个例子可以是方法链接和流畅接口之间的区别

Integer.parseInt(str).intValue() 

对于流利接口,对象的每个方法由点链的,而无需进行相关的先前的方法 这两种技术使改性方法返回到主机对象,以便可以在如下单个表达式中调用多个修饰符:

new Car().StartsEngine().OpenWindow() 

这是正确的吗?

+1

http://randomthoughtsonjavaprogramming.blogspot.be/2013 /10/trainwreck-vs-method-chaining.html。另请参阅Martin Fowler文章的参考资料。 –

回答

2

我不认为有一个主要区别;或者说,这两个概念是在不同的层次上。方法链是一种简单的方法,您可以直接对不同方法的返回值调用方法。

流畅的界面是一种设计API的风格,它可以执行多步骤,复杂的操作,以便读起来接近散文。流畅的接口将被用于通过方法链接。它可以为每次调用使用相同的可变对象,也可以每次都返回一个新的不可变对象,具体取决于接口作者认为是一个好主意。

1

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(); 
+0

你的意思是**不**所有的方法链接都是流畅的接口。 – RealSkeptic

相关问题