以下是我在ms news group裡,對「什麼情況下定義inte***ce」這一問題的回答,基本上體現我現在對inte***ce的理解,可能有不足或者完全就是謬誤,希望能得到大家的指正:
乙個類實現了某個介面,就相當於宣告我能夠完成某項工作。比如乙個類實現了icomparable介面,就相當於宣告了我可以完成對自身例項進行比較的工作。
明白了以上這些,就可以回答,什麼時候我們需要定義乙個介面的問題。
先做個比喻,如果你的公司要完成乙個專案,需要找乙個程式設計人員,你會怎麼做?你一定會去發乙個招聘廣告:「招聘程式設計師:要求能用c#開發程式」。那轉化成相應c# code,就相當於定義了乙個介面:
inte***ce icsharpprogramming
其中task是乙個類:
class task //代表乙個任務
假設公司也是乙個類,需要找人來完成任務:
class company
} 然後,會有些類實現了介面:
class dotnetprogrammer: icsharpprogramming,ivbprogramming,iaspnetprogramming
那麼這個類的物件,完成可以傳遞給performtask做為引數。
現在有這樣一些**:
company mycompany;
dotnetprogrammer justin;
mycompany.performtask(justin);
翻譯過來就是,乙個叫mycompany的公司,找了justin去完成它的專案。
總結:當你寫乙個程式時,需要別人為你完成某種工作而不在乎這個人是誰時,你可以發布乙個介面,申明你需要乙個能完成介面中定義的工作的類的例項。
但願我上面的胡言亂語能給你帶少許幫助。另外,上面的**體現的是一種dic(dependency inversion principle 依賴倒置原則)的思想,更深的理解可以看一下robert martin寫的敏捷軟體開發一書中的相應章節。
對UART介面的理解
uart是一種通用序列資料匯流排,用於非同步通訊。該匯流排雙向通訊,可以實現全雙工傳輸和接收。在嵌入式設計中,uart用來與pc進行通訊,包括與監控偵錯程式和其它器件,如eeprom通訊。uart通訊 uart首先將接收到的並行資料轉換成序列資料來傳輸。訊息幀從乙個低位起始位開始,後面是7個或8個資...
對IDisposable介面的理解
本人最近接觸乙個專案,在這個專案裡面看到很多類實現了idisposable介面.在我以前的專案中都很少用過這個介面,只知道它是用來手動釋放資源的.這麼多地方用應該有它的好處,為此自己想對它有進一步的了解,但這個過程遠沒有我想象中的簡單.idisposable介面定義 定義一種釋放分配的資源的方法。n...
對介面的一些理解
萌新第一次寫部落格。初學物件導向時,對介面和抽象方法有點搞不清楚,所以就總結一波 一 介面的一些基本知識 介面是乙個抽象型別,是抽象方法的集合,介面通常以inte ce來宣告。乙個類通過繼承介面的方式,從而來繼承介面的抽象方法。介面不可以被例項化但是可以被繼承。在我的理解中,介面就是規定了被繼承類必...