面向接口編程:
1, 在定義一個引用變量時, 心里想的應該是:我在這里需要一個什么樣的功能,我是因為需要什么功能才創建變量的! 接口定義了功能的集合! 所以我應該是用接口來定義這個引用變量嘛!
2, 定義好了引用變量以后, 要讓它引用一個對象, 這個對象就應該是實現了那個接口的類的實例了! 隨便一個類, 只要它繼承實現了那個接口, 那么它的實例都可以在這里被引用.
3, 方法的返回類型也是要定義為接口類型, 因為, 你要記住: 我們這個方法是需要返回一個有特定功能的對象! 同理, 方法的參數的類型也是如此!
我的理解: 所謂面向接口編程, 就是說在定義引用變量的時候, 用接口來定義.
多說一句: 也許你覺得用抽象類來定義也可以, 那么請你仔細的再領悟一下第一條吧!
我們完全可以給抽象類定義一個接口類型的嘛, 呵呵.
一直以來我的一個思想誤區就是:在需要定義一個變量時,想的是它要引用哪一個對象, 其實不該這么想, 應該扭轉一下這種想法, 以后,應該想的是,我需要什么功能呢,我要定義一個什么樣的接口,從而給這里提供一些什么樣的功能!
-------------------------------------------------------------------------------------------------------------------------------------------------------
接口 以及 工廠模式以及IOC模式的運用, 可以很好的減少模塊之間的耦合,便於以后系統引用實例的更改!
我覺得這是接口的最大功用!
接口和抽象類都是對類的抽象,對類的划分,是最高層的抽象!
--------------------------------------------------------------------------------------------------------------------------------
1,假如一個類實現了多個接口,那么用接口類型來定義它的引用變量的話,一眼就可以明白,這里是需要這個類的哪些個方法!
2,用接口類型定義引用變量,以后需要修改其引用的實例時,改動的地方要少一些!