2016-04-15 30 views
2

我不明白一件簡單的事情。 例如:A是一個接口,B是正確地貫徹執行A. 多大劑量恰恰意味着做一個類:java界面和新類

A name = new B(some_argument); 

我很多人使用,而不是

B name = new B(some_argument); 

但我可以這樣看不知道用接口來製作對象的劑量是多少。 爲什麼他們這樣做?他們之間有一些區別? 有時候一個人比其他人好?例如 例如相反的劑量不工作

B name = new A(); 

回答

2

從技術上說兩者都有效。

大多數人使用第一種解決方案(您也應該這樣做)的原因是接口爲某類類定義了某種合約/ API。 這意味着當你不知道它的實現或實現是可交換的時候使用一個接口。

因此,針對接口進行編碼而不是針對真實的特定實現進行編碼是使代碼可交換和通用的最佳方法,它可以幫助您對代碼進行模塊化,儘可能降低類間的硬鏈接依賴關係,代碼可維護。

另外一個接口可以用來添加額外的功能,因爲你可以實現多個接口但只擴展一個類。

一個實際的例子: 想象一下插件的SDK。它定義了一些接口。 當你開發你的應用程序/ sdk兩年後,其他人完成了一個插件的操作,你是如何調用一個實現這個接口的類的函數? ;)