避免参数定义唤起接口变动

避免参数定义引起接口变动
避免参数定义引起接口变动

接口在java中是个很好的东西,使用接口能够使设计变得灵活,运用得好能够很大程度减少代码之间的耦合度,提高系统的扩展性。一个好的接口,不因该是经常变动的,接口的定义体现着设计者对业务的理解,对设计者设计功底的体现。实际中,接口的设计往往不可能面面俱到,但是应该尽量避免变动。这里发现一条经验,就是接口传递参数时,尽量用用一个参数封装多个参数,比如说有个接口中有个方法


Java代码 
public void m1(String p1,String p2);  

如果中途,发现传递的参数不足,变为
Java代码 
public void m1(String p1,String p2,int n);  

后面某个时候,又觉得增加传入参数,这下又得加了,接口跟着变,使用的人可能跟着头疼,如果一开始的时候就这么定义
Java代码 
public void m1(Param p1);  
Param 是参数类:
Java代码 
public class Param 

   public String p1; 
   public String p2; 
 

后面加参数,就不需要变动接口方法了,只需要在Param 中增加参数:
Java代码 
public class Param 

   public String p1; 
   public String p2; 
   public int n; 

这样就避免了接口的频繁变动,尤其是在第三方接口中尤为重要,不光是传入参数,传出也是类似道理。

其实比较扩展做法是接口参数传递接口,更加灵活:
Java代码 
public void m1(IParam p);  
IParam是参数接口,这样就更加加大了扩展空间和想象空间。