新聞中心
先用一個案例來給大家說明一下面向接口編程。

成都創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元疏勒做網(wǎng)站,已為上家服務(wù),為疏勒各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
案例:有一個電腦類(Computer),電腦除了有基本的開機關(guān)機功能外,還有連接任何外接設(shè)備的功能,比如能電腦能連接外置鍵盤(Keyboard),鼠標(biāo)(Mouse),投影儀(Projecter)等很多外置設(shè)備,請用代碼來實現(xiàn)該需求;
實現(xiàn)步驟如下:
首先需要創(chuàng)建三個類Keyboard,Mouse,Projecter即鍵盤、鼠標(biāo)、投影儀類,并且都有自己的功能
其次需要創(chuàng)建一個Computer類,類里面有開機(openComputer)方法,也有關(guān)機(closeComputer)方法,而且還有三個接收外置設(shè)備的方法connectKeyboard,connectMouse,connectProjecter,代碼如下:
- // 鍵盤類
- public class Keyboard {
- public void work(){
- System.out.println("外置鍵盤可以用來輸入數(shù)據(jù)");
- }
- }
- // 鼠標(biāo)類
- public class Mouse{
- public void work(){
- System.out.println("鼠標(biāo)方便操作人員打開一些程序");
- }
- }
- // 投影儀類
- public class Projecter{
- public void work(){
- System.out.println("投影儀把屏幕投影到墻上放大");
- }
- }
- // 定義筆記本類
- // 功能: 開機,關(guān)機,接收外置設(shè)備 鍵盤 鼠標(biāo) 投影儀 并讓其工作
- public class Computer {
- //開機
- public void openComputer(){
- System.out.println("筆記本開機");
- }
- //關(guān)機
- public void closeComputer(){
- System.out.println("筆記本關(guān)機");
- }
- //連接外置鍵盤 并讓其輸入
- public void connectKeyboard(Keyboard k){
- k.work();
- }
- //連接鼠標(biāo) 并讓其點擊
- public void connectMouse(Mouse m){
- m.work();
- }
- //連接投影儀 并讓其投影
- public void connectProjecter(Projecter p){
- p.work();
- }
- }
現(xiàn)在這個需求我們就已經(jīng)做完了。但是假如此時一些電腦配件的生產(chǎn)商又生產(chǎn)出了一種新設(shè)備“U盤”用來做外置存儲的,那么這時候我們除了需要再寫一個U盤類之外,還需要在Computer類中加一個連接U盤的方法(這體現(xiàn)在現(xiàn)實生活中就是把原來已經(jīng)制作好的電腦解體重新改裝出一個用來連接U盤的口子),增加的代碼如下:
- // U盤類
- public class UDisk{
- public void work(){
- System.out.println("U盤可以用來存儲數(shù)據(jù)");
- }
- }
- // 定義筆記本類
- // 功能: 開機,關(guān)機,接收外置設(shè)備 鍵盤 鼠標(biāo) 投影儀 并讓其工作
- public class Computer {
- //開機
- public void openComputer(){
- System.out.println("筆記本開機");
- }
- //關(guān)機
- public void closeComputer(){
- System.out.println("筆記本關(guān)機");
- }
- //連接外置鍵盤 并讓其輸入
- public void connectKeyboard(Keyboard k){
- k.work();
- }
- //連接鼠標(biāo) 并讓其點擊
- public void connectMouse(Mouse m){
- m.work();
- }
- //連接投影儀 并讓其投影
- public void connectProjecter(Projecter p){
- p.work();
- }
- //連接U盤 并讓其存儲
- public void connectUDisk(UDisk u){
- u.work();
- }
- }
對于U盤新設(shè)備,我們經(jīng)過改裝電腦,可以讓電腦連接使用了。但是可恨的是 就在此時,電腦配件的生產(chǎn)商又生產(chǎn)出了外置音響,我們快要瘋了,因為我們不得不又要把電腦拆了,重新改裝出一個連接外置音響的口子。這時候我們并沒有著急去改裝自己的電腦,因為萬一自己改裝完了之后 電腦配件生產(chǎn)商又生產(chǎn)出了其他的外置設(shè)備呢?難道我們就一直改裝下去嗎?那究竟有沒有一種解決辦法呢??
答案是肯定的,接口的出現(xiàn)很好的解決了這一問題,我們向電腦配件生產(chǎn)商提供了一套規(guī)范 名叫USB,告訴他們以后再生產(chǎn)任何的設(shè)備都要留出USB形狀的對接口,那么我們的電腦只需要留出一個USB形狀的對接口,用來連接任何具有該形狀對接口的設(shè)備即可,改進代碼如下:
- // 定義筆記本類
- // 功能: 開機,關(guān)機,接收任何USB設(shè)備
- public class Computer {
- //開機
- public void openComputer(){
- System.out.println("筆記本開機");
- }
- //關(guān)機
- public void closeComputer(){
- System.out.println("筆記本關(guān)機");
- }
- //連接USB設(shè)備 并讓其進行相應(yīng)的工作
- public void connectUSB(USB device){ //父接口的引用可以接收任何的子類對象,多態(tài)!
- device.work(); //此處運行的是子類的重寫后的work方法
- }
- }
- // 自定義的USB接口
- // 規(guī)范 USB設(shè)備能運行并完成相應(yīng)的功能
- public interface USB {
- public abstract void work();
- }
- // 鍵盤類
- public class Keyboard implements USB{
- public void work(){
- System.out.println("外置鍵盤可以用來輸入數(shù)據(jù)");
- }
- }
- // 鼠標(biāo)類
- public class Mouse implements USB{
- public void work(){
- System.out.println("鼠標(biāo)方便操作人員打開一些程序");
- }
- }
經(jīng)過這樣的設(shè)計,我們的電腦只要留出用來連接USB設(shè)備的對接口就可以了,不管生產(chǎn)商們生產(chǎn)任何的外接設(shè)備,只要他們按照USB接口規(guī)范來,他們都能夠接入到電腦上去,這樣就極大的增強了電腦的拓展性,以及設(shè)備的可維護性。
? 經(jīng)過這個案例,大家應(yīng)該明白面向接口編程給我們帶來的便利了吧。面向接口編程就是增強了代碼的拓展性,而接口就是體現(xiàn)的一種規(guī)范,也是提現(xiàn)的一種拓展思想。
本文名稱:揭秘什么是面向接口編程
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/dpsjepp.html


咨詢
建站咨詢
