从使用“List list = new ArrayList()”而不是“ArrayList list = new ArrayList()”看面向接口编程
1、問題就在于List有多個實現類,如 LinkedList或者Vector等等,現在你用的是ArrayList,也許哪一天你需要換成其它的實現類呢?,這時你只要改變這一行就行了:List list = new LinkedList(); 其它使用了list地方的代碼根本不需要改動。假設你開始用 ArrayList alist = new ArrayList(), 這下你有的改了,特別是如果你使用了 ArrayList特有的方法和屬性。 ,如果沒有特別需求的話,最好使用List list = new LinkedList(); ,便于程序代碼的重構. 這就是面向接口編程的好處。
2、接口是一組規則的集合,它規定了實現本接口的類或接口必須擁有的一組規則。體現了自然界“如果你是……則必須能……”的理念。
如果你是人類,則必須能吃飯。
3、在系統分析和架構中,分清層次和依賴關系,每個層次不是直接向其上層提供服務(即不是直接實例化在上層中),而是通過定義一組接口,僅向上層暴露其接口功能,上層對于下層僅僅是接口依賴,而不依賴具體類。就像我們將一個WD的500GB硬盤換成一個希捷的1TB的硬盤,計算機其他地方不用做任何改動,而是把原硬盤拔下來、新硬盤插上就行了,因為計算機其他部分不依賴具體硬盤,而只依賴一個IDE接口,只要硬盤實現了這個接口,就可以替換上去。
4、面向接口編程可以降低程序之間的耦合度,是指在具體的調用處都是接口進行的,并不依賴于具體類
總結
以上是生活随笔為你收集整理的从使用“List list = new ArrayList()”而不是“ArrayList list = new ArrayList()”看面向接口编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea 2019.2 版本更新(最顶部
- 下一篇: 日志信息jar包 slf4j-api、