面向介面程式設計:
1, 在定義乙個引用變數時, 心裡想的應該是:我在這裡需要乙個什麼樣的功能。我是因為需要什麼功能才建立變數的,介面定義了功能的集合! 所以我應該是用介面來定義這個引用變數嘛!
2, 定義好了引用變數以後, 要讓它引用乙個物件, 這個物件就應該是實現了那個介面的類的例項了。隨便乙個類, 只要它繼承實現了那個介面, 那麼它的例項都可以在這裡被引用.
3, 方法的返回型別也是要定義為介面型別,因為, 你要記住:我們這個方法是需要返回乙個有特定功能的物件, 同理,方法的引數的型別也是如此!
我的理解:所謂面向介面程式設計, 就是說在定義引用變數的時候, 用介面來定義。
多說一句: 也許你覺得用抽象類來定義也可以, 那麼請你仔細的再領悟一下第一條吧。
我們完全可以給抽象類定義乙個介面型別的嘛, 呵呵.
一直以來我的乙個思想誤區就是:在需要定義乙個變數時,想的是它要引用哪乙個物件, 其實不該這麼想, 應該扭轉一下這種想法, 以後,應該想的是,我需要什麼功能呢,我要定義乙個什麼樣的介面,從而給這裡提供一些什麼樣的功能!
介面、工廠模式、ioc模式的運用,可以很好的減少模組之間的耦合,便於以後系統引用例項的更改。
我覺得這是介面的最大功用。
介面和抽象類都是對類的抽象,對類的劃分,是最高層的抽象。
假如乙個類實現了多個介面,那麼用介面型別來定義它的引用變數的話,一眼就可以明白,這裡是需要這個類的哪些個方法!
用介面型別定義引用變數,以後需要修改其引用的例項時,改動的地方要少一些!
定義介面型別的引用變數有什麼好處
1,在定義乙個引用變數時,心裡想的應該是 我在這裡需要乙個什麼樣的功能,我是因為需要什麼功能才建立變數的 介面定義了功能的集合 所以我應該是用介面來定義這個引用變數嘛 2,定義好了引用變數以後,要讓它引用乙個物件,這個物件就應該是實現了那個介面的類的例項了 隨便乙個類,只要它繼承實現了那個介面,那麼...
變數的引用型別和非引用型別的區別
author liyuechao date 2014.8.8 algo1 3.cpp 變數的引用型別和非引用型別的區別 includevoid fa int a 在函式中改變a,將不會帶回主調函式 主調函式中的a仍是原值 void fb int a 由於a為引用型別,在函式中改變a,其值將帶回主調函...
變數的引用型別和非引用型別的區別
author liyuechao date 2014.8.8 algo1 3.cpp 變數的引用型別和非引用型別的區別 includevoid fa int a 在函式中改變a,將不會帶回主調函式 主調函式中的a仍是原值 void fb int a 由於a為引用型別,在函式中改變a,其值將帶回主調函...