面向接口編程的理解 什么是面向接口編程?
什么是面向接口編程?面向接口編程是指在面向?qū)ο蟮南到y(tǒng)中,所有類或模塊之間的交互都是由接口完成的。概念是用來(lái)概括的,關(guān)鍵是理解意義。解釋如下:a s=New B在內(nèi)存堆中創(chuàng)建一個(gè)B對(duì)象,在內(nèi)存堆棧中創(chuàng)建
什么是面向接口編程?
面向接口編程是指在面向?qū)ο蟮南到y(tǒng)中,所有類或模塊之間的交互都是由接口完成的。概念是用來(lái)概括的,關(guān)鍵是理解意義。解釋如下:a s=New B在內(nèi)存堆中創(chuàng)建一個(gè)B對(duì)象,在內(nèi)存堆棧中創(chuàng)建一個(gè)引用a,a指向B。使用a中的s.print()方法調(diào)用B中同名的方法肯定是正確的,因?yàn)轭怋實(shí)現(xiàn)了a接口。所謂面向接口編程可以降低程序之間的耦合度,即特定的調(diào)用是由接口進(jìn)行的,不依賴于特定的類。在a s=New B中,B可以被實(shí)現(xiàn)接口a的任何其他類所取代。
為什么要使用面向接口編程?
面向接口編程是將客戶的業(yè)務(wù)提取為接口。業(yè)務(wù)的具體實(shí)現(xiàn)由接口的實(shí)現(xiàn)類完成。當(dāng)客戶需求發(fā)生變化時(shí),只需編寫一個(gè)新的業(yè)務(wù)邏輯實(shí)現(xiàn)類,并在配置文件(如spring框架)中更改接口的實(shí)現(xiàn)類即可完成需求。不需要重寫現(xiàn)有代碼來(lái)減少對(duì)系統(tǒng)的影響。基于接口編程的項(xiàng)目具有清晰的業(yè)務(wù)邏輯、易于理解的代碼、易于擴(kuò)展、可維護(hù)性強(qiáng)等特點(diǎn)。但是為什么我們不能意識(shí)到好處呢?因?yàn)槲覀兊南到y(tǒng)很小,開發(fā)輔助少,而且界面設(shè)計(jì)不合理。我們經(jīng)常需要改變接口。理論上,當(dāng)需求發(fā)生變化時(shí),我們只需要修改接口實(shí)現(xiàn)。
什么是面向接口編程,它的好處是什么?
在一個(gè)面向?qū)ο蟮南到y(tǒng)中,系統(tǒng)的各種功能是由許多不同的對(duì)象來(lái)完成的。在這種情況下,如何實(shí)現(xiàn)各個(gè)對(duì)象之間的內(nèi)在聯(lián)系對(duì)系統(tǒng)設(shè)計(jì)者來(lái)說(shuō)并不重要,而各個(gè)對(duì)象之間的協(xié)作關(guān)系成為系統(tǒng)設(shè)計(jì)的關(guān)鍵。小到不同類之間的通信,大到模塊之間的交互,在系統(tǒng)設(shè)計(jì)之初都要重點(diǎn)關(guān)注,這也是系統(tǒng)設(shè)計(jì)的主要工作。面向接口編程是指按照這樣的思想進(jìn)行的編程:在實(shí)現(xiàn)一個(gè)系統(tǒng)時(shí),通常將定義和實(shí)現(xiàn)不分離地集成在一起。我認(rèn)為最理想的系統(tǒng)設(shè)計(jì)規(guī)范應(yīng)該是所有定義和實(shí)現(xiàn)的分離,盡管對(duì)于系統(tǒng)中的某些情況可能有點(diǎn)麻煩。