介面編程
❶ 什麼是面向介面編程,它的好處是什麼
在一個面向對象的系統中,系統的各種功能是由許許多多的不同對象協作完成的。在這種情況下,各個對象內部是如何實現自己的對系統設計人員來講就 不那麼重要了;而各個對象之間的協作關系則成為系統設計的關鍵。小到不同類之間的通信,大到各模塊之間的交互,在系統設計之初都是要著重考慮的,這也是系 統設計的主要工作內容。面向介面編程就是指按照這種思想來編程
補充:我們在一般實現一個系統的時候,通常是將定義與實現合為一體,不加分離的,我認為最為理想的系統設計規范應是所有的定義與實現分離,盡管這可能對系統中的某些情況有點麻煩。
❷ 面向切面編程和面向介面編程的區別
談談自己的理解吧:
面向切面編程:
手段:分離業務的主邏輯和次邏輯的一種思想。
目的:解決的是邏輯分離問題(主邏輯和次邏輯分開,其實主要是分離業務邏輯和非業務邏輯分開)。
案例:我們開發項目的時候基本都要去連接資料庫操作數據等,但是都會涉及到事務的提交,這時我們就用到了面向切面編程,我們在業務層只寫自己的業務邏輯,提交事務這一塊統一的動作我們就濃縮到了一塊兒統一處理,形象一點比喻就是我們做什麼事之前都以一個准備動作或結束動作的時候就把它統一起來,只關注我們要完成的事,這些准備動作統一完成!
類似的面向切面編程案例還有:系統日誌的記錄、請求的攔截等
面向介面編程:
手段:通過介面規約對象的屬性和方法,是面向對象一部分。
目的:統一標准問題,讓大家不至於各行其事而對代碼的可讀性造成影響(公用部分行為)。
案例:其實這個比較好解釋,就是有一件事,需要大家去完成,但是給你規定了完成的方式,你只能怎麼去做,這時我們當中任何一個人都能去完成這件事,只不過因人而異會有效率和風格的差異,但是都是按照事先的規定來的!比如:讓你去給資料庫添加一行數據返回受影響的行數,這里大家都去實現介面寫sql,中間可能會有差異,但是最後都得返回一個int類型的受影響行數回來
大體意思就是說:介面給我們規定了完成一個任務的標准,但是具體過程不限制,任何人都能通過遵循的規定去完成這件事!這樣擴展性就很強!
個人水平有限,如果不滿意請參考:網頁鏈接
❸ 什麼叫作編程介面
簡單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。
程序也就是指令的集合,它告訴計算機如何執行特殊的任務。
寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。
隨計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。
匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。由於省略了很多細節,所以編程者也不需要具備太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
從二十世紀60年代以後,計算機得到了突飛猛進的發展。似乎歷史上沒有任何一門科學的發展速度超過了計算機的發展,無論硬體、軟體、還是網路都以驚人的速度向前發展。軟體的發展速度和硬體一樣,二十世紀九十年代中國的軟體業還不是很成熟,而現在大大小小 的軟體企業四處聳立,共享軟體網上隨處可見。不斷發展的技術需要不斷變化的程序員,例如,如今Visual Basic可以快速構建Windows下的應用程序,程序設計方面的技術不斷發展著,不斷引進新的概念、新的方法,如從結構化的C開始,當面向對象的思想被提出後,出現了C++,微軟在C++的基礎上為使用戶構建win32應用程序更加方便,推出了Visual C++。這也就需要程序員也要不斷的更新自己的技術。
目前常用的基本程序語言的種類比較繁多,比較簡單的有:Pascal、c語言、qBasic、 Fortran、Visual Basic等等。但前幾種都是在DOS下進行編程的工具,Visual Basic是在 Windows下進行應用程序設計的編程工具,現在一般的計算機用戶幾乎都不再使用DOS了,因此我們通常會選擇Visual Basic作為初學者的編程工具。Visual Basic是Windows應用程序設計中最容易上手的編程工具,學習步驟也比較容易被初學者接受。對於剛開始學習編程的初學者來說,還是選擇Visual Basic,學習編程語言不能想像著一步登天,一步一個腳印的學習才是最佳方法。
❹ 面向介面編程到底有什麼好處
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相互轉化
}
❺ 面向介面編程有什麼好處
是面向對象程序設計的進化吧,COM就是一種實現,可以在介面類型間轉換,客戶程序不用跟隨介面更新
❻ 面向介面編程和面向實現編程的區別
這個涉及到設計上的原則,也就是依賴倒轉原則。舉個簡單的例子,我們經常用的操作資料庫的方法,在jdk中定義的都是介面,由不同的資料庫廠商實現,比如mysql的驅動,oracle的驅動,都是實現了jdk中定義介面標准。jdk中的設計就是面向介面的,而不同的資料庫廠商就是面向實現的。
面向介面的好處就是,定義好介面標准,不管是誰只要按定義好的標准來實現,都可以無縫的切換,所以您應該發現,不管是用mysql也好,還是用oracle也都,您都是在使用jdk的api。
❼ 關於面向介面編程
跟你講一個實際生活中的例子,你就會明白。
大家都用過音箱,把音頻線接到電腦再接電源,就可以播放美妙的音樂。這是一個常見的例子。
編程中的介面,其實跟電腦與音箱之間那個音頻介面的思想其實差不多。你接上高檔一點的音箱它的音質會好一點,低檔一點的也能聽,A廠商的音箱也可以,B廠商的音箱也沒什麼問題。音箱廠商在設計音箱的時候,他們不會管你使用的是什麼電腦、什麼音效卡,他們只在意音頻介面的信號,而這些信號是格式是公開的。這樣就使得音效卡、音箱的可以獨立設計與開發,大家遵循同樣的介面規范就可以進行合作,而不必要了解對方的技術細節。
軟體的開發同樣會有合作的問題,比如團隊與團隊之間、公司與公司之間,往往是你開發一個模塊,我開發一個模塊,那來源不同的各個模塊是如何協同動作呢?就是公開的介面定義在起作用。
以上簡短的介紹,希望對你有所幫助
❽ java面向介面編程思想
A s=new B();
一個對象實例只能賦值給與它類型相同的引用、或者父類(包括介面)的引用。
B是A的實現類所以B的實例可以賦值給A的引用。
實例:確實的對象;引用:指向某一對象的名字。
這個耦合度是指:一個類(或者對象)對另一個類(或者對象)的依賴。
如果用類的繼承,要求所有的具有某一個方法的一類對象都必須是指定類的子類對象,總是存在依賴,應用靈活度非常差!
❾ 面向介面編程
面向對象編程的時候,我們會考慮到兩個問題,一個是類的定義,一個是實現對象,類經過實例化就是對象,比如現在有個類叫Student ,那麼用這個類生成個對象,就是這個樣子,Student s=new Student 這個s就是對象了。Student s 就是創建這個對象,=new Student() 就是在內存中真正的生成這個對象。我們在類里定義的一些方法,比如 public void show(){system.out.println('我是菜鳥')},那麼,因為當前的類不是個靜態類,所以這個方法是不能真正的實現的,說白了就是不能用 ,只有生成了這個類的對象才能實現這個方法,如 s.show(); 通過s調用 show 方法。
面向介面編程的意思是指在面向對象的系統中所有的類或者模塊之間的交互是由介面完成的。概念是用來高度概括的,關鍵是理解意思。解釋如下:A s =new B;在內存堆中創建一個B對象,在內存棧中創建一個引用A,A指向B。用A中的s.print()方法去調用B中的同名方法,這當然是正確的,因為B類實現了A介面。所謂的面向介面編程可以降低程序之間的耦合度,是指在具體的調用處都是介面進行的,並不依賴於具體類,在A s = new B;中,B可以被任意實現了介面A的其他類替換掉。在spring的IOC中面向介面編程降低了類之間的耦合度得到了很好的體現,建議你順便去學習一下,可以加深你的理解。
❿ 什麼是面向介面編程
在一個面向對象的系統中,系統的各種功能是由許許多多的不同對象協作完成的。在這種情況下,各個對象內部是如何實現自己的對系統設計人員來講就不那麼重要了;而各個對象之間的協作關系則成為系統設計的關鍵。小到不同類之間的通信,大到各模塊之間的交互,在系統設計之初都是要著重考慮的,這也是系統設計的主要工作內容。面向介面編程我想就是指按照這種思想來編程吧!實際上,在日常工作中,你已經按照介面編程了,只不過如果你沒有這方面的意識,那麼你只是在被動的實現這一思想;表現在頻繁的抱怨別人改的代碼影響了你(介面沒有設計到),表現在某個模塊的改動引起其他模塊的大規模調整(模塊介面沒有很好的設計)等等。 Booch先生那天談到Interaction Designer,它就是指做這類設計的人,只不過層次更高一些。我想目前我們的軟體設計隊伍中,這類人是最缺乏的人才之一。 1.關於介面的理解。 介面從更深層次的理解,應是定義(規范,約束)與實現(名實分離的原則)的分離。 我們在一般實現一個系統的時候,通常是將定義與實現合為一體,不加分離的,我認為最為理解的系統設計規范應是所有的定義與實現分離,盡管這可能對系統中的某些情況有點繁煩。 介面的本身反映了系統設計人員對系統的抽象理解。 介面應有兩類:第一類是對一個體的抽象,它可對應為一個抽象體(abstract class); 第二類是對一個體某一方面的抽象,即形成一個抽象面(interface); 一個體有可能有多個抽象面。 抽象體與抽象面是有區別的。 2.設計介面的另一個不可忽視的因素是介面所處的環境(context,environment),系統論的觀點:環境是系統要素所處的空間與外部影響因素的總和。任何介面都是在一定的環境中產生的。因此環境的定義及環境的變化對介面的影響是不容忽視的,脫離原先的環境,所有的介面將失去原有的意義。 3.按照組件的開發模型(3C),它們三者相輔相成,各司一面,渾然一體,缺一不可。 面向對象是指,我們考慮問題時,以對象為單位,考慮它的屬性及方法 面向過程是指,我們考慮問題時,以一個具體的流程(事務過程)為單位,考慮它的實現 介面設計與非介面設計是針對復用技術而言的,與面向對象(過程)不是一個問題 我認為:UML裡面所說的interface是協議的另一種說法。並不是指com的interface,CORBA的interface,