講的面向介面程式設計..我聽了個稀里糊塗
問題:現在有介面a和繼承a介面的b類,那麼
a s=new b;
這是什麼意思呢???
然後在用a的方法s.print就可以調b類裡實現了的方法了.
還有老師說面向介面程式設計是為了降低程式的耦合度(耦合度是啥意思).比物件導向更安全.這是什麼意思??
問題補充:
那面向介面和物件導向比的優點缺點都是哪些呢??
面向介面程式設計的意思是指在物件導向的系統中所有的類或者模組之間的互動是由介面完成的。面向介面程式設計,就是面向抽象程式設計。概念是用來高度概括的,關鍵是理解意思。解釋如下:
a s =new b;
在記憶體堆中建立乙個b物件,在記憶體棧中建立乙個引用a,a指向b。用a中的s.print()方法去呼叫b中的同名方法,這當然是正確的,因為b類實現了a介面。
所謂的面向介面程式設計可以降低程式之間的耦合度,是指在具體的呼叫處都是介面進行的,並不依賴於具體類,在a s = new b;中,b可以被任意實現了介面a的其他類替換掉。
在spring的ioc中面向介面程式設計降低了類之間的耦合度得到了很好的體現,建議你順便去學習一下,可以加深你的理解。
舉例來說,你老師說的那個例子
a是介面(介面就是抽象的),b是類(生成後類物件是具體的)。
a s=new b;
s這個物件具有a介面規定的一切方法(b類裡強制必須實現的)。
這樣c,d, e ,f類也可以實現a介面,
如果想替換成c,d ,e, f就很簡單了,呼叫時候還是用a介面規定的哪些方法。
面向介面程式設計
面向介面程式設計 英文的定義是 program to an inte ce,not an implementation 它是物件導向程式設計裡面的乙個設計原則。所謂原則,就是 你最好按我的樣子來做,實在不行也可以違反 物件導向程式設計有三個主要的特性,即是封裝,多型,繼承。面向介面程式設計是多型特性...
面向介面程式設計
物件導向設計裡有一點大家已基本形成共識,就是面向介面程式設計,我想大多數人對這個是沒有什麼覺得需要懷疑的。問題是在實際的專案開發中我們是怎麼體現的呢?難道就是每乙個實現都提供乙個介面就了事了?反過來說,你有時候有沒有覺得介面是多餘的事?又或者,你僅僅是覺得現在類似spring這樣的框架已習慣用介面這...
面向介面程式設計
上篇我們了解了當依賴注入與面向介面程式設計結合起來,才能真正發揮依賴注入的優勢。這篇我們開始簡單了解一下面向介面程式設計。什麼是面向介面程式設計?乙個類依賴其他類的目的是為了獲取其他類所提供的服務,可能這種服務有多種實現,我們可能需要根據不同的場景使用不同的實現。此時,我們可以使用多型,將同一功能的...