自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭秘什么是面向接口編程

開(kāi)發(fā) 前端
先用一個(gè)案例來(lái)給大家說(shuō)明一下面向接口編程。案例:有一個(gè)電腦類(Computer),電腦除了有基本的開(kāi)機(jī)關(guān)機(jī)功能外,還有連接任何外接設(shè)備的功能,比如能電腦能連接外置鍵盤(Keyboard),鼠標(biāo)(Mouse),投影儀(Projecter)等很多外置設(shè)備,請(qǐng)用代碼來(lái)實(shí)現(xiàn)該需求。

先用一個(gè)案例來(lái)給大家說(shuō)明一下面向接口編程。

案例:有一個(gè)電腦類(Computer),電腦除了有基本的開(kāi)機(jī)關(guān)機(jī)功能外,還有連接任何外接設(shè)備的功能,比如能電腦能連接外置鍵盤(Keyboard),鼠標(biāo)(Mouse),投影儀(Projecter)等很多外置設(shè)備,請(qǐng)用代碼來(lái)實(shí)現(xiàn)該需求;

實(shí)現(xiàn)步驟如下:

首先需要?jiǎng)?chuàng)建三個(gè)類Keyboard,Mouse,Projecter即鍵盤、鼠標(biāo)、投影儀類,并且都有自己的功能

其次需要?jiǎng)?chuàng)建一個(gè)Computer類,類里面有開(kāi)機(jī)(openComputer)方法,也有關(guān)機(jī)(closeComputer)方法,而且還有三個(gè)接收外置設(shè)備的方法connectKeyboard,connectMouse,connectProjecter,代碼如下:

  1. //  鍵盤類 
  2. public class Keyboard { 
  3.    public void work(){ 
  4.     System.out.println("外置鍵盤可以用來(lái)輸入數(shù)據(jù)"); 
  5.    } 
  6.  
  7.  //  鼠標(biāo)類 
  8. public class Mouse{ 
  9.    public void work(){ 
  10.     System.out.println("鼠標(biāo)方便操作人員打開(kāi)一些程序"); 
  11.    } 
  12.  
  13.   // 投影儀類 
  14. public class Projecter{ 
  15.    public void work(){ 
  16.     System.out.println("投影儀把屏幕投影到墻上放大"); 
  17.    } 
  18.  
  19.  //  定義筆記本類 
  20.  // 功能: 開(kāi)機(jī),關(guān)機(jī),接收外置設(shè)備 鍵盤 鼠標(biāo) 投影儀 并讓其工作 
  21.  
  22. public class Computer { 
  23.    //開(kāi)機(jī) 
  24.    public void openComputer(){ 
  25.     System.out.println("筆記本開(kāi)機(jī)"); 
  26.    } 
  27.    //關(guān)機(jī) 
  28.    public void closeComputer(){ 
  29.     System.out.println("筆記本關(guān)機(jī)"); 
  30.    } 
  31.    //連接外置鍵盤 并讓其輸入 
  32.    public void connectKeyboard(Keyboard k){ 
  33.     k.work(); 
  34.    } 
  35.    //連接鼠標(biāo) 并讓其點(diǎn)擊 
  36.    public void connectMouse(Mouse m){ 
  37.     m.work(); 
  38.    } 
  39.    //連接投影儀 并讓其投影 
  40.    public void connectProjecter(Projecter p){ 
  41.     p.work(); 
  42.    } 

現(xiàn)在這個(gè)需求我們就已經(jīng)做完了。但是假如此時(shí)一些電腦配件的生產(chǎn)商又生產(chǎn)出了一種新設(shè)備“U盤”用來(lái)做外置存儲(chǔ)的,那么這時(shí)候我們除了需要再寫一個(gè)U盤類之外,還需要在Computer類中加一個(gè)連接U盤的方法(這體現(xiàn)在現(xiàn)實(shí)生活中就是把原來(lái)已經(jīng)制作好的電腦解體重新改裝出一個(gè)用來(lái)連接U盤的口子),增加的代碼如下:

  1. //  U盤類 
  2. public class UDisk{ 
  3.    public void work(){ 
  4.      System.out.println("U盤可以用來(lái)存儲(chǔ)數(shù)據(jù)"); 
  5.    } 
  6.  
  7.  // 定義筆記本類 
  8.  //  功能: 開(kāi)機(jī),關(guān)機(jī),接收外置設(shè)備 鍵盤 鼠標(biāo) 投影儀 并讓其工作 
  9. public class Computer { 
  10.    //開(kāi)機(jī) 
  11.    public void openComputer(){ 
  12.      System.out.println("筆記本開(kāi)機(jī)"); 
  13.    } 
  14.    //關(guān)機(jī) 
  15.    public void closeComputer(){ 
  16.      System.out.println("筆記本關(guān)機(jī)"); 
  17.    } 
  18.  
  19.    //連接外置鍵盤 并讓其輸入 
  20.    public void connectKeyboard(Keyboard k){ 
  21.      k.work(); 
  22.    } 
  23.  
  24.    //連接鼠標(biāo) 并讓其點(diǎn)擊 
  25.    public void connectMouse(Mouse m){ 
  26.      m.work(); 
  27.    } 
  28.  
  29.    //連接投影儀 并讓其投影 
  30.    public void connectProjecter(Projecter p){ 
  31.      p.work(); 
  32.    } 
  33.  
  34.    //連接U盤 并讓其存儲(chǔ) 
  35.    public void connectUDisk(UDisk u){ 
  36.      u.work(); 
  37.    } 

對(duì)于U盤新設(shè)備,我們經(jīng)過(guò)改裝電腦,可以讓電腦連接使用了。但是可恨的是 就在此時(shí),電腦配件的生產(chǎn)商又生產(chǎn)出了外置音響,我們快要瘋了,因?yàn)槲覀儾坏貌挥忠央娔X拆了,重新改裝出一個(gè)連接外置音響的口子。這時(shí)候我們并沒(méi)有著急去改裝自己的電腦,因?yàn)槿f(wàn)一自己改裝完了之后 電腦配件生產(chǎn)商又生產(chǎn)出了其他的外置設(shè)備呢?難道我們就一直改裝下去嗎?那究竟有沒(méi)有一種解決辦法呢??

答案是肯定的,接口的出現(xiàn)很好的解決了這一問(wèn)題,我們向電腦配件生產(chǎn)商提供了一套規(guī)范 名叫USB,告訴他們以后再生產(chǎn)任何的設(shè)備都要留出USB形狀的對(duì)接口,那么我們的電腦只需要留出一個(gè)USB形狀的對(duì)接口,用來(lái)連接任何具有該形狀對(duì)接口的設(shè)備即可,改進(jìn)代碼如下:

  1. //  定義筆記本類 
  2. //  功能: 開(kāi)機(jī),關(guān)機(jī),接收任何USB設(shè)備 
  3. public class Computer { 
  4.    //開(kāi)機(jī) 
  5.    public void openComputer(){ 
  6.      System.out.println("筆記本開(kāi)機(jī)"); 
  7.    } 
  8.    //關(guān)機(jī) 
  9.    public void closeComputer(){ 
  10.      System.out.println("筆記本關(guān)機(jī)"); 
  11.    } 
  12.    //連接USB設(shè)備 并讓其進(jìn)行相應(yīng)的工作 
  13.    public void connectUSB(USB device){   //父接口的引用可以接收任何的子類對(duì)象,多態(tài)! 
  14.      device.work();     //此處運(yùn)行的是子類的重寫后的work方法 
  15.    } 
  16.  
  17.  //  自定義的USB接口 
  18.  //  規(guī)范  USB設(shè)備能運(yùn)行并完成相應(yīng)的功能 
  19. public interface USB { 
  20.    public abstract void work(); 
  21.  
  22.  // 鍵盤類 
  23.  
  24. public class Keyboard implements USB{ 
  25.    public void work(){ 
  26.      System.out.println("外置鍵盤可以用來(lái)輸入數(shù)據(jù)"); 
  27.    } 
  28.  
  29.  //  鼠標(biāo)類 
  30.  
  31. public class Mouse implements USB{ 
  32.    public void work(){ 
  33.      System.out.println("鼠標(biāo)方便操作人員打開(kāi)一些程序"); 
  34.    } 

經(jīng)過(guò)這樣的設(shè)計(jì),我們的電腦只要留出用來(lái)連接USB設(shè)備的對(duì)接口就可以了,不管生產(chǎn)商們生產(chǎn)任何的外接設(shè)備,只要他們按照USB接口規(guī)范來(lái),他們都能夠接入到電腦上去,這樣就極大的增強(qiáng)了電腦的拓展性,以及設(shè)備的可維護(hù)性。

​ 經(jīng)過(guò)這個(gè)案例,大家應(yīng)該明白面向接口編程給我們帶來(lái)的便利了吧。面向接口編程就是增強(qiáng)了代碼的拓展性,而接口就是體現(xiàn)的一種規(guī)范,也是提現(xiàn)的一種拓展思想。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2013-07-30 09:42:41

實(shí)現(xiàn)編程接口編程對(duì)象編程

2021-01-14 08:16:41

Python接口編程

2023-01-10 09:38:09

面向對(duì)象系統(tǒng)

2009-11-09 10:57:07

ibmdw軟件架構(gòu)

2020-09-04 06:34:25

5GTDDGNSS

2023-10-04 17:25:01

面向接口編程

2011-07-05 16:15:49

面向?qū)ο?/a>

2024-04-23 14:46:40

云計(jì)算能源效率碳排放

2021-05-28 05:34:06

Golang語(yǔ)言編程

2009-07-02 13:25:00

消除實(shí)現(xiàn)繼承面向接口編程Java

2011-07-05 17:19:47

元編程

2023-10-13 07:36:58

Java函數(shù)式編程

2013-01-10 10:05:29

編程面向?qū)ο缶幊?/a>

2011-11-11 15:47:22

JavaScript

2009-08-14 15:42:11

什么是.NET接口.NET抽象類

2022-07-30 23:41:53

面向過(guò)程面向?qū)ο?/a>面向協(xié)議編程

2013-11-26 10:14:15

面向?qū)ο?/a>函數(shù)式

2012-02-10 10:32:33

JavaSpring

2010-11-17 11:31:22

Scala基礎(chǔ)面向?qū)ο?/a>Scala

2011-08-04 10:18:45

數(shù)據(jù)驅(qū)動(dòng)編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)