接口在java中是个很好的东西,使用接口能够使设计变得灵活,运用得好能够很大程度减少代码之间的耦合度,提高系统的扩展性。一个好的接口,不应该是经常变动的,接口的定义体现着设计者对业务的理解和计者设计的功底。实际中,接口的设计往往不可能面面俱到,但是应该尽量避免变动。这里发现一条经验,就是接口传递参数时,尽量用一个参数封装多个参数,比如说接口中有个方法:
public void m1(String p1,String p2);
如果中途发现传递的参数不足,变为:
public void m1(String p1,String p2,int n);
后面某个时候,又觉得传递的参数不足,这下又得加参数了,接口也得跟着变,使用的人可能跟着头疼。如果一开始的时候就这么定义:
public void m1(Param p1);
Param 是参数类:
public class Param {
public String p1;
public String p2;
}
后面加参数,就不需要变动接口方法了,只需要在Param 中增加参数:
public class Param {
public String p1;
public String p2;
public int n;
}
这样就避免了接口的频繁变动,尤其是在第三方接口中尤为重要,不光是传入参数,传出也是类似的道理。
其实比较扩展的做法是接口参数传递接口,更加灵活:
public void m1(IParam p);
IParam是参数接口,这样就更加加大了扩展空间和想象空间。