⑴ 什麼是面向介面編程
什麼是介面?
-- 在表面上是由幾個沒有主體代碼的方法定義組成的集合體,有唯一的名稱,可以被類或其他介面所實現(或者也可以說繼承), 由關鍵詞 interface 修飾。
什麼是面向介面編程?
-- 在系統分析或架構設計中,每個層級的程序並不是直接提供程序服務,而是定義一組介面,通過實現介面來提供功能。面向介面編程實際是面向對象編程的一部分。
面向介面編程的優點?
1、介面的定義和實現分開(分開有什麼好處呢?)
首先,項目一般是由團隊共同開發來完成的,在其中,介面的定義一般是由架構師來設定,然後又編程人員來實現完成,架構師根據架構、設計規則來設定介面,把握項目的整體視圖和編寫規范,編程人員實現具體業務邏輯,分工明確,程序清晰。
其次,從實現上看,介面的定義時間很短,但介面的實現周期相對較長,若一個編程人員需要調用其他人員編寫的某個方法時,可以採用多態的方式獲取介面對象,來調用方法,這樣保證團隊共同完成開發。
2、介面可以有多個實現類,便於以後的業務擴展
什麼意思呢?
-- 比如實現類的業務需要擴展功能,此時可以採用重新實現介面的方式,這樣降低了程序的冗餘 和 一個類寫太多行代碼的尷尬。
另外,介面的多實現易於通過配置文件的方式配置介面的實現類(這個是指在spring中管理對象的時候)。
⑵ 面向介面編程到底有什麼好處
1.最簡單的方法:
publicstaticStringreverse1(Stringstr)
{
returnnewStringBuffer(str).reverse().toString();
}
2.最常用的方法:
publicstaticStringreverse3(Strings)
{
char[]array=s.toCharArray();
Stringreverse="";//注意這是空,不是null
for(inti=array.length-1;i>=0;i--)
reverse+=array[i];
returnreverse;
}
3.常用方法的變形:
publicstaticStringreverse2(Strings)
{
intlength=s.length();
Stringreverse="";//注意這是空,不是null
for(inti=0;i<length;i++)
reverse=s.charAt(i)+reverse;//在前面連接,而非常見的後面
returnreverse;
}
4.C語言中常用的方法:
publicstaticStringreverse5(Stringorig)
{
char[]s=orig.toCharArray();
intn=s.length-1;
inthalfLength=n/2;
for(inti=0;i<=halfLength;i++){
chartemp=s[i];
s[i]=s[n-i];
s[n-i]=temp;
}
returnnewString(s);//知道char數組和String相互轉化
}
⑶ 面向介面編程和面向實現編程的區別
這個涉及到設計上的原則,也就是依賴倒轉原則。舉個簡單的例子,我們經常用的操作資料庫的方法,在jdk中定義的都是介面,由不同的資料庫廠商實現,比如mysql的驅動,oracle的驅動,都是實現了jdk中定義介面標准。jdk中的設計就是面向介面的,而不同的資料庫廠商就是面向實現的。
面向介面的好處就是,定義好介面標准,不管是誰只要按定義好的標准來實現,都可以無縫的切換,所以您應該發現,不管是用mysql也好,還是用oracle也都,您都是在使用jdk的api。