接口在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是參數接口,這樣就更加加大了擴展空間和想象空間。